يتيح لك WooCommerce تقييد الشحن حسب البلدان (أو البلدان “المسموح بها”). ومع ذلك ، لنفترض أن عملك يقع في ولاية بنسلفانيا بالولايات المتحدة الأمريكية (PA) أو في إحدى الولايات الأسترالية. قد ترغب في قصر الشحن على دولة فقط.
كل ما تحتاجه هو لصق الكود التالي في ملف functions.php
WooCommerce: قصر الشحن على دولة واحدة فقط
WooCommerce 3.0+ Snippet
منذ WooCommerce 3.0 ، تحل “get_shipping_state ()” محل وظيفة “shipping_state”:
/**
* @snippet Only ship to PA
* @how-to Get CustomizeWoo.com FREE
* @sourcecode https://businessbloomer.com/?p=309
* @author Rodolfo Melogli
* @testedwith WooCommerce 3.2.1
*/
function bbloomer_only_ship_to_pa( $rates, $package ) {
global $woocommerce;
$excluded_states = array( 'AL','AK','AS','AZ','AR','CA','CO','CT','DE','DC','FL','FM','GA','GU','HI','ID','IL','IN','IA','KS','KY','LA','ME','MH','MD','MA','MI','MN','MS','MO','MT','NE','NV','NH','NJ','NM','NY','NC','ND','MP','OH','OK','OR','PW','PR','RI','SC','SD','TN','TX','UM','UT','VT','VA','VI','WA','WV','WI','WY' );
if( in_array( WC()->customer->get_shipping_state(), $excluded_states ) ) {
$rates = array();
}
return $rates;
}
add_filter( 'woocommerce_package_rates', 'bbloomer_only_ship_to_pa', 10, 2 );
WooCommerce 2.1+ Snippet
تم استبدال woocommerce_available_shipping_methods بـ woocommerce_package_rates.
إذا كنت تستهدف بلدًا مختلفًا ، فستحتاج إلى إلقاء نظرة على مجلد woocommerce \ i18n \ States.php داخل البرنامج المساعد ، ثم ابحث عن البلد الذي تريده. إذا لم تكن الدول موجودة ، يرجى مراجعة https://docs.woocommerce.com/document/states-not-in-core/.
/**
* @snippet Only ship to PA WooCommerce 2.1+
* @how-to Get CustomizeWoo.com FREE
* @sourcecode https://businessbloomer.com/?p=309
* @author Rodolfo Melogli
* @testedwith WooCommerce 2.6
*/
function bbloomer_only_ship_to_pa( $rates, $package ) {
global $woocommerce;
$excluded_states = array( 'AL','AK','AS','AZ','AR','CA','CO','CT','DE','DC','FL','FM','GA','GU','HI','ID','IL','IN','IA','KS','KY','LA','ME','MH','MD','MA','MI','MN','MS','MO','MT','NE','NV','NH','NJ','NM','NY','NC','ND','MP','OH','OK','OR','PW','PR','RI','SC','SD','TN','TX','UM','UT','VT','VA','VI','WA','WV','WI','WY' );
if( in_array( WC()->customer->shipping_state, $excluded_states ) ) {
$rates = array();
}
return $rates;
}
add_filter( 'woocommerce_package_rates', 'bbloomer_only_ship_to_pa', 10, 2 );
حتى WooCommerce 2.0
// Only ship to PA Woo 2.0
function only_ship_to_pa( $available_methods ) {
global $woocommerce;
$excluded_states = array( 'AL','AK','AS','AZ','AR','CA','CO','CT','DE','DC','FL','FM','GA','GU','HI','ID','IL','IN','IA','KS','KY','LA','ME','MH','MD','MA','MI','MN','MS','MO','MT','NE','NV','NH','NJ','NM','NY','NC','ND','MP','OH','OK','OR','PW','PR','RI','SC','SD','TN','TX','UM','UT','VT','VA','VI','WA','WV','WI','WY' );
if( in_array( $woocommerce->customer->get_shipping_state(), $excluded_states ) ) {
// Empty the $available_methods array
$available_methods = array();
}
return $available_methods;
}
add_filter( 'woocommerce_available_shipping_methods', 'only_ship_to_pa', 10 );
المنشورات ذات الصلة:
WooCommerce: إخفاء أسعار الشحن في حالة توفر الشحن المجاني
WooCommerce: إزالة ملصقات الشحن في السلة (مثل “السعر الثابت”)
WooCommerce: تم فتح “الشحن إلى عنوان مختلف” افتراضيًا
WooCommerce: قم بفرز تكاليف الشحن من الأقل إلى الأعلى
WooCommerce: تعطيل بوابة الدفع لطريقة شحن محددة
WooCommerce: عدم السماح بالشحن إلى عنوان صندوق البريد
WooCommerce: إخفاء سعر الشحن إذا كانت فئة الشحن @ سلة التسوق
WooCommerce: أضف حقل رقم المنزل @ Checkout
WooCommerce: الشحن فقط إلى عناوين “الاستلام المحلية” المحددة مسبقًا
WooCommerce: أضف هاتف الشحن @ Checkout
أين تضيف هذا المقتطف؟
يمكنك وضع مقتطفات PHP في الجزء السفلي من ملف function.php القالب الفرعي الخاص بك (احذف “؟>” إذا كان لديك هناك). من ناحية أخرى ، ينتقل CSS في ملف style.css الخاص بسمة الطفل. تأكد من أنك تعرف ما تفعله عند تحرير مثل هذه الملفات – إذا كنت بحاجة إلى مزيد من الإرشادات ، فيرجى إلقاء نظرة على الفيديو التعليمي المجاني الخاص بي “أين تضع تخصيص WooCommerce؟”
هل هذا المقتطف (لا يزال) يعمل؟
يرجى إعلامي في التعليقات إذا كان كل شيء يعمل كما هو متوقع. يسعدني مراجعة المقتطف إذا أبلغت بخلاف ذلك (يرجى تقديم لقطات شاشة). لقد اختبرت هذا الكود مع موضوع Storefront وإصدار WooCommerce المذكور أعلاه واستضافة صديقة لـ وورد بريس على PHP 7.3.
إذا كنت تعتقد أن هذا الرمز وفر لك الوقت والمال ، فلا تتردد في الانضمام إلى أكثر من 14000 مشترك في WooCommerce Weekly للحصول على تحديثات منشورات المدونة أو أكثر من 250 من مؤيدي Business Bloomer لمدة 365 يومًا من مزايا WooCommerce . شكرا لكم مقدما 🙂
هل تحتاج إلى مساعدة في WooCommerce؟
تحقق من دروس الفيديو المجانية هذه. يمكنك تعلم كيفية تخصيص WooCommerce بدون مكونات إضافية غير ضرورية ، وكيفية تكوين إعدادات البرنامج المساعد WooCommerce بشكل صحيح وحتى كيفية إتقان استكشاف أخطاء WooCommerce في حالة حدوث خطأ!