
هل ترغب في وضع حد أدنى للطلب في WooCommerce بناءً على المدينة التي يقوم فيها المستخدم بالتسوق؟ إذا كان الأمر كذلك، يمكنك استخدام الشيفرة التالية مع إضافة “Shipping Rates by City for WooCommerce”:
كود وضع حد أدنى للطلب في WooCommerce
// الحصول على قيمة شحن المدينة
function get_city_shipping_value(){
$city = WC()->checkout->get_value("billing_city");
global $wpdb;
$value = $wpdb->get_var("SELECT cost FROM brh_wccfee_cities WHERE city_name='$city'");
return $value;
}
// استبدال زر "تأكيد الطلب" عندما يكون إجمالي السلة أقل من قيمة شحن المدينة
add_filter( 'woocommerce_order_button_html', 'replace_order_button_html', 10, 2 );
function replace_order_button_html( $order_button ) {
if( WC()->cart->total > get_city_shipping_value() ) return $order_button;
$order_button_text = __( "لم يتم الوصول لأقل تكلفة للطلب", "woocommerce" );
$style = ' style="color:#fff;pointer-events: none;cursor:not-allowed;background-color:#999;"';
return '<a class="button alt"'.$style.' name="woocommerce_checkout_place_order" id="place_order" >' . esc_html( $order_button_text ) . '</a>';
}
هذا الشيفرة يستخدم دالة get_city_shipping_value() للحصول على قيمة شحن المدينة المحددة في معامل الفوتر “billing_city”. ثم يتم استخدام الفلتر woocommerce_order_button_html لاستبدال زر “تأكيد الطلب” إذا كان إجمالي سلة التسوق أقل من قيمة شحن المدينة.
كيفية الحصول على قيمة شحن المدينة
الخطوة الأولى هي استخراج قيمة شحن المدينة من قاعدة البيانات. تُستخدم الدالة get_city_shipping_value() التي تسترجع قيمة cost من جدول brh_wccfee_cities بناءً على اسم المدينة المدخل في حقل billing_city في صفحة الدفع.
يجب أن تتأكد من أن جدول الشحن يحتوي على جميع المدن التي تخدمها، وأن القيم محدثة لتجنب الأخطاء.
بعد ذلك، يمكن استخدام هذه القيمة في أي جزء من الكود الذي يتطلب معرفة الحد الأدنى للطلب.
استبدال زر "تأكيد الطلب" عند عدم استيفاء الحد الأدنى
باستخدام فلتر woocommerce_order_button_html يمكن تعديل زر “تأكيد الطلب” ليظهر نصاً مخصصاً ويمنع النقر عندما يكون إجمالي السلة أقل من قيمة شحن المدينة.
يتم ذلك عبر الدالة replace_order_button_html() التي تتحقق من WC()->cart->total وتعيد زرًا غير قابل للنقر مع رسالة توضح أن الحد الأدنى لم يُحقق.
هذا يضمن أن الزبائن لا يخطئون في إتمام طلب غير مجدي من الناحية المالية.
أسئلة شائعة
هل أحتاج إلى معرفة تفاصيل قاعدة البيانات لتطبيق هذا الكود؟
نعم، يجب أن تكون على دراية بجدول brh_wccfee_cities وتأكد من أن القيم صحيحة ومحدثة.
ما هي المزايا التي أستفيد منها عند فرض حد أدنى للطلب؟
تحسين تغطية تكاليف الشحن، زيادة متوسط قيمة الطلب، وتجنب عمليات الشحن غير المربحة.
هل يمكن تعديل الحد الأدنى للطلب حسب نوع المنتج؟
نعم، يمكنك تعديل الكود ليشمل شروطاً إضافية بناءً على فئات المنتجات أو خصائص أخرى.
كيف أضيف دعم للغة العربية في الرسائل؟
يمكنك استخدام دالة __() مع مفتاح اللغة المناسب لتوفير نص مترجم للرسائل.
