شما این محصولات را انتخاب کرده اید

سبد خرید

تبدیل ساختار انتخابی به دکمه در متغیر های ووکامرسی صفحه محصول
شناسه پست: 14946
بازدید: 10

تبدیل ساختار انتخابی به دکمه در متغیر های ووکامرسی صفحه محصول

				
					<style>
        .hidden {
            display: none;
        }
        .button-container {
            margin-top: 10px;
        }
        .button-container button {
            margin: 5px;
            padding: 10px;
            cursor: pointer;
        }
    </style>
    <script>
        document.addEventListener("DOMContentLoaded", function() {
            console.log("صفحه کاملاً لود شده است.");

            // تابعی که تمام selectها را پیدا کرده و دکمه‌ها را ایجاد می‌کند
            function replaceSelectsWithButtons() {
                // پیدا کردن تمام selectهای داخل جدول variations
                const selectElements = document.querySelectorAll(".variations select");
                console.log("تعداد selectها پیدا شده:", selectElements.length);

                selectElements.forEach((selectElement) => {
                    // اگر select قبلاً پردازش شده باشد، از آن صرف‌نظر می‌کنیم
                    if (selectElement.classList.contains("processed")) {
                        console.log("این select قبلاً پردازش شده است.");
                        return;
                    }

                    console.log("در حال پردازش select:", selectElement);

                    const options = selectElement.querySelectorAll("option");
                    console.log("تعداد گزینه‌ها:", options.length);

                    // بررسی وجود گزینه‌ها
                    if (options.length > 1) {
                        console.log("گزینه‌ها وجود دارند.");

                        // مخفی کردن select
                        selectElement.classList.add("hidden");
                        console.log("عنصر select مخفی شد.");

                        // ایجاد دکمه‌ها برای هر گزینه
                        const buttonContainer = document.createElement("div");
                        buttonContainer.classList.add("button-container");
                        console.log("کنتینر دکمه‌ها ایجاد شد.");

                        options.forEach((option, index) => {
                            if (option.value) {
                                console.log(گزینه ${index + 1}:, option.textContent);

                                const button = document.createElement("button");
                                button.textContent = option.textContent;
                                button.addEventListener("click", function() {
                                    console.log(دکمه "${option.textContent}" کلیک شد.);
                                    selectElement.value = option.value;
                                    // اجرای رویداد change به صورت دستی
                                    const event = new Event('change', { bubbles: true });
                                    selectElement.dispatchEvent(event);
                                    console.log("رویداد change اجرا شد.");
                                });
                                buttonContainer.appendChild(button);
                                console.log(دکمه "${option.textContent}" اضافه شد.);
                            }
                        });

                        // اضافه کردن دکمه‌ها به صفحه
                        selectElement.parentNode.appendChild(buttonContainer);
                        console.log("دکمه‌ها به صفحه اضافه شدند.");

                        // علامت‌گذاری select به عنوان پردازش‌شده
                        selectElement.classList.add("processed");
                    } else {
                        console.log("هیچ گزینه‌ای وجود ندارد.");
                    }
                });
            }

            // اگر selectها از قبل وجود دارند، مستقیماً تابع را اجرا کنید
            replaceSelectsWithButtons();
            // اگر selectها به صورت دینامیک اضافه می‌شوند، از MutationObserver استفاده کنید
            const observer = new MutationObserver(function(mutations) {
                mutations.forEach(function(mutation) {
                    if (mutation.type === 'childList') {
                        console.log("تغییراتی در DOM رخ داده است.");
                        replaceSelectsWithButtons();
                    }
                });
            });

            // زیر نظر گرفتن تغییرات در کل body
            observer.observe(document.body, { childList: true, subtree: true });
        });
    </script>
				
			

توضیحات:

با قرار دادن کد در تمپلیت صفحه محصول خود می‌توانید سلکت های خود را تبدیل به دکمه نمایید.

شما میتوانید سوالات خود را از طریق ایمیل پشتیبانی – تماس با ما – یا در قسمت نظرات سوال خود را بپرسید.

موفق باشید

A.J

پست های مرتبط:

شما می‌توانید از سورس های آماده به راحتی و با کپی پیست در پروژه خود استفاده بفرمایید

بله! سورسا به عنوان اولین و برترین مرجع سورس کد های آماده، تمامی سورس کد ها در زبان های مختلف را به صورت رایگان در اختیار شما قرار می‌دهد.

اگر سورس مد نظر شما تفاوتی با سورس فعلی دارد یا اینکه درخواست سورس دیگری را دارید می‌توانید با کارشناسان سورسا در ارتباط باشید.

سورسا به عنوان مرجع سورس در تلاش است سورس کد ها و آموزش های تمامی زبان های برنامه نویسی مانند GO C++ Python C PHP SQL JS و… را تحت پوشش قرار داد

اشتراک در
اطلاع از
guest

0 نظرات
قدیمی‌ترین
تازه‌ترین بیشترین رأی
بازخورد (Feedback) های اینلاین
مشاهده همه دیدگاه ها