إخفاء طرق شحن WooCommerce بناءً على خصائص المنتج
تعتبر منصة WooCommerce من بين الأكثر شيوعًا في إنشاء المتاجر الإلكترونية، حيث تتيح تسجيل المنتجات وإدارتها بسهولة. لكن، قد يواجه البعض تحديات في تخصيص إعدادات الشحن وفقًا لمتغيرات المنتجات، خاصة عند العمل مع سمات معينة. لذا، سنستعرض في هذا المقال كيفية إخفاء طرق الشحن في WooCommerce بناءً على سمات المتغيرات المختارة من قبل المستخدم.
فهم الأمر: لماذا نحتاج إلى إخفاء طرق الشحن؟
يتطلب بعض العملاء طرق شحن محددة حسب نوع المنتج الذي يختارونه. على سبيل المثال، قد يكون لديك منتج رقمي وآخر مطبوع، وتريد تقييد طرق الشحن المتاحة بناءً على الإصدارات المختارة. باستخدام بعض الأكواد البرمجية، يمكنك تخصيص نظام الشحن الخاص بك بطريقة تجعل تجربة المستخدم أكثر سلاسة.
كيف نحدد سمات المتغيرات؟
لإخفاء طرق الشحن بناءً على سمات المتغيرات، نبدأ بتحديد القيم المناسبة للعناصر التي نريد التحكم بها. في هذا المثال، لدينا السمة "Versione" التي تحتوي على قيمتين: "digitale" و "cartaceo". بناءً على هذا، نريد إخفاء بعض طرق الشحن عندما يتم اختيار أحد هذه المتغيرات.
الكود الخاص بإدارة طرق الشحن
الخطوة الأولى تتطلب استخدام فلتر woocommerce_package_rates
، وهو ما يسمح لنا بتعديل قائمة طرق الشحن المتاحة في عربة التسوق. إليك الكود المناسب لتحقيق هذا الهدف:
add_filter( 'woocommerce_package_rates', 'custom_hide_shipping_method_based_on_variation', 10, 2 );
function custom_hide_shipping_method_based_on_variation( $rates, $package ) {
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
$taxonomy = 'pa_versione'; // السمة التي سنعمل معها
// تحديد طرق الشحن التي يجب إخفاؤها بناءً على السمة المختارة
$methods_to_hide = array(
'flat_rate:3' => array('digitale'),
'free_shipping:4' => array('cartaceo'),
);
// دورة عبر جميع العناصر في العربة
foreach( $package['contents'] as $cart_item ){
if( isset($cart_item['variation']['attribute_' . $taxonomy]) ) {
$term_slug = $cart_item['variation']['attribute_' . $taxonomy];
// التحقق من طرق الشحن
foreach( $methods_to_hide as $rate_id => $term_slugs ) {
if( in_array($term_slug, $term_slugs) && isset($rates[$rate_id]) ) {
// إخفاء طريقة الشحن المطابقة
unset($rates[$rate_id]);
}
}
}
}
return $rates;
}
بهذا الكود، نقوم بالتأكد من أن طرق الشحن المحددة ستكون مخفية بناءً على السمة المحددة في كل منتج. إذا كان المنتج "digitale" سيكون محجوبًا منه طرق الشحن المحددة، وهكذا.
التحقق من الكود الخاص بك
إذا وجدت أن الكود لا يعمل كما هو متوقع، يجب التحقق من عدة ملفات. تأكد من أنه قد تم إدخاله في ملف functions.php الخاص بالقالب النشط. كما ينبغي التأكد من أن السمة المعرفة تتناسب مع تهيئة المنتجات لديك، بالإضافة إلى القيم المحددة لطرق الشحن.
خلاصة
عملية إخفاء طرق الشحن بناءً على سمة المنتج المحددة هي ميزة هامة تعزز تجربة المستخدم في متجرك. من خلال اتباع الخطوات وتطبيق الكود المذكور، يمكنك إدارة طرق الشحن بكفاءة أكبر وتقديم خيارات مناسبة لكل نوع من المنتجات. في حال واجهت أي مشاكل، تأكد من مراجعة الكود وإجراء الفحوصات اللازمة.
في النهاية، باتباع هذه التعليمات، ستتمكن من تحسين إدارة الشحن في WooCommerce بشكل فعال، مما يساهم في تجربة تسوق أفضل للعملاء ويزيد من فرص النجاح لمتجرك الإلكتروني.