آیا شما یک فروشگاه ووکامرس دارید و می خواهید بدانید چگونه می توانید روش پرداخت را برای دسته بندی خاص یا چندین روش پرداخت بر اساس دسته بندی محصولات موجود در سبد خرید غیرفعال کنید؟ اگر به دنبال راه حلی هستید که بر دسته بندی محصولات متمرکز باشد، اما با برخی تغییرات کوچک می تواند برای کلاس های حمل و نقل به عنوان مثال در مورد خود محصولات نیز تغییر کند، این مقاله شما را در مورد چگونگی دستیابی به آن راهنمایی می کند.
غیرفعال کردن روش پرداخت برای دسته خاص
یک مثال خوب که این رویکرد مفید است، زمانی است که صاحبان فروشگاه ووکامرس یک دسته بندی دارند که فقط محصولات با قیمت بالا را شامل می شود و می خواهند مشتریان به جای استفاده از کارت اعتباری، با انتقال بانکی پرداخت کنند. این تنها نمونهای از بسیاری از موقعیتهایی است که ممکن است لازم باشد روش پرداخت را برای یک دسته غیرفعال کنید..
اگر اهل فن آوری نیستید، ممکن است یک افزونه ممتاز را انتخاب کنید تا این کار را برای شما انجام دهد. به عنوان مثال، افزونه پرداخت مشروط ووکامرس است که به شما کمک می کند شرایطی را ایجاد کنید که در آن روش های پرداخت شما فعال یا غیرفعال شوند. اگر در استفاده از کد عالی نیستید، این بهترین راه حل برتری است که باید در نظر بگیرید.
علاوه بر این، این افزونه به شما امکان میدهد شرایط نامحدودی ایجاد کنید و از مثلاً مجموع سبد خرید، کشور صورتحساب، نقش کاربر و موارد دیگر استفاده کنید تا مشخص کنید کدام درگاه پرداخت را نشان میدهد و کدام را نه.
با این حال، برای این آموزش کوتاه، من قصد دارم به شما نشان دهم که چگونه یک روش پرداخت را برای یک دسته خاص با استفاده از قطعه کد PHP غیرفعال کنید.
مراحل غیرفعال کردن روش پرداخت برای دسته بندی خاص با استفاده از قطعه کد PHP
در اینجا مراحل ساده ای وجود دارد که باید دنبال کنید:
- وارد سایت وردپرس خود شوید و به عنوان کاربر مدیریت به داشبورد دسترسی پیدا کنید.
- از منوی داشبورد، روی Appearance Menu > Theme Editor Menu کلیک کنید. وقتی صفحه ویرایشگر تم باز شد، به دنبال فایل توابع تم بگردید که در آن تابعی را اضافه می کنیم که روش پرداخت را برای یک دسته خاص غیرفعال می کند.
- کد زیر را به فایل php اضافه کنید:
/** * @snippet Disable Payment Method for Specific Category */ add_filter( 'woocommerce_available_payment_gateways', 'njengah_unset_gateway_by_category' ); function njengah_unset_gateway_by_category( $available_gateways ) { if ( is_admin() ) return $available_gateways; if ( ! is_checkout() ) return $available_gateways; $unset = false; $category_ids = array( 8, 37 ); foreach ( WC()->cart->get_cart_contents() as $key => $values ) { $terms = get_the_terms( $values['product_id'], 'product_cat' ); foreach ( $terms as $term ) { if ( in_array( $term->term_id, $category_ids ) ) { $unset = true; break; } } } if ( $unset == true ) unset( $available_gateways['cheque'] ); return $available_gateways; }
- این نتایج خواهد بود
به خاطر داشته باشید که شناسه دسته بندی صحیحی را که در فروشگاه ووکامرس شما وجود دارد اضافه کنید تا این کد کار کند.
اگر دوست ندارید از شناسه دسته استفاده کنید، می توانید از اسلاگ دسته در فروشگاه ووکامرس خود نیز استفاده کنید. ممکن است استفاده از آنها را انتخاب کنید، زیرا درک آنها برای مراجع بعدی آسانتر است.
مراحل غیرفعال کردن روش پرداخت برای دسته خاص با استفاده از دستهبندی Slugs
- وارد سایت وردپرس خود شوید و به عنوان کاربر مدیریت به داشبورد دسترسی پیدا کنید.
- از منوی داشبورد، روی Appearance Menu > Theme Editor Menu کلیک کنید. وقتی صفحه ویرایشگر تم باز شد، به دنبال فایل توابع تم بگردید که در آن تابعی را اضافه می کنیم که روش پرداخت را برای یک دسته خاص غیرفعال می کند.
- کد زیر را به فایل php اضافه کنید:
/** * @snippet Disable payment gateway based on category. */ function njengah_disable_payment_gateway_category( $gateways ) { // دستههایی که درگاه پرداخت را غیرفعال میکنند $category_slugs = array( ' accessories', 'another-category' ); $category_ids = get_terms( array( 'taxonomy' => 'product_cat', 'slug' => $category_slugs, 'fields' => 'ids' ) ); // هر کالای سبد خرید را برای دسته بندی مشخص بررسی کنید foreach ( WC()->cart->get_cart() as $item ) { $product = $item['data']; if ( $product && array_intersect( $category_ids, $product->get_category_ids() ) ) { unset( $gateways['cod'] ); // وقتی محصول یکی از دستهها را دارد، «کد» درگاه پرداخت را غیرفعال کنید break; } } return $gateways; } add_filter( 'woocommerce_available_payment_gateways', 'njengah_disable_payment_gateway_category' );
- این نتیجه خواهد شد
به یاد داشته باشید که اسلاگ دسته بندی صحیح را اضافه کنید و باید درگاه پرداختی را که می خواهید غیرفعال کنید تعریف کنید. برای مثال، من از «کد» برای نشان دادن وجه نقد هنگام تحویل استفاده کردهام.
توجه به این نکته ضروری است که شناسه درگاه پرداخت نیز باید به هر کدام که مایلید در صورت وجود دسته بندی در سبد خرید، غیرفعال شود.
- حواله بانکی (Bas)
- چک (چک)
- نقدی هنگام تحویل (کد)
- پی پال (پی پال)
با این حال، اگر از یکی از درگاههای پرداخت پیشفرض استفاده نمیکنید، نگران نباشید، زیرا هنوز یک راه آسان برای پیدا کردن شناسه درگاه پرداخت وجود دارد. می توانید این کار را با مراجعه به صفحه تنظیمات درگاه پرداخت انجام دهید و شناسه را در آنجا پیدا کنید.
به عنوان مثال برای گزینه نقدی در هنگام تحویل در صفحه، این نشانی اینترنتی خواهد بود: wp-admin/admin.php?page=wc-settings&tab=checkout§ion=cod
نتیجه
در این پست، نحوه غیرفعال کردن روش پرداخت برای دسته بندی خاص را با استفاده از دو روش یاد گرفتید. میتوانید با استفاده از شناسههای دستهبندی محصول یا راب دستهبندی آنها را برای ارجاع آسان در آینده تعریف کنید. به خاطر داشته باشید که از شناسه دسته یا اسلاگ موجود در فروشگاه ووکامرس خود برای افزودن این قابلیت استفاده کنید.