تفعيل خصم برقمين عشريين في ووكومرس مع إعدادات صفرية
لقد أصبح استخدام WooCommerce في الوقت الحالي من الأمور الشائعة بالنسبة للتجار الذين يرغبون في إنشاء متاجر إلكترونية ناجحة. ومن بين الأمور التي قد تحتاج إلى تعديل داخل منصة WooCommerce هي طريقة عرض الخصومات، خصوصًا حين يتطلب الأمر استخدام فواصل عشرية معينة. في هذا المقال، سنتناول كيفية استخدام قيمتين عشريتين لعرض قيمة الخصم في WooCommerce مع إعدادات الصفر للفواصل العشرية، وسنستعرض كودًا مخصصًا يساعد على تحقيق ذلك.
أهمية تعديل عرض الخصومات في WooCommerce
تتمثل أهمية عرض الخصومات بصورة صحيحة في توفير شفافية أكبر للعملاء، مما يعزز ثقتهم ويشجعهم على اتخاذ قرار الشراء. ومع أن الكثير من المتاجر تستخدم إعدادات الفواصل العشرية بصفر، قد يكون من الضروري عرض الخصومات بصورة واضحة باستخدام قيمتين عشريتين. هذا التعديل لا يحسن فقط من تجربة المستخدم، بل يعكس أيضًا احترافية المتجر.
تطبيق كود الخصم في صفحة إنهاء الشراء
لإجراء تعديل على كيفية عرض الخصم في صفحة إنهاء الشراء في WooCommerce، يمكن استخدام كود مخصص. يمكنك إضافة الكود التالي في ملف functions.php
في ثيم الطفل الخاص بك، أو في إضافة مخصصة:
add_action( 'woocommerce_cart_calculate_fees', 'discount_based_on_payment_method_e643e', 10, 1 );
function discount_based_on_payment_method_e643e( $cart ) {
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
if ( ! ( is_checkout() && ! is_wc_endpoint_url() ) )
return;
$payment_id = 'wallet'; // ID طريقة الدفع المستهدفة
if( WC()->session->get('chosen_payment_method') === $payment_id ) {
global $abc_options;
$discount_rate = $abc_options['wallet_payment_discount_amount_value'];
$discount_amount = WC()->cart->get_subtotal() * $discount_rate / 100;
$fee_description = '~ ' . $discount_rate . '% ' . __('Discount Wallet Payment', 'nm-ffk');
$cart->add_fee($fee_description, -$discount_amount);
}
}
هذا الكود يقوم بإضافة خصم يعتمد على وسيلة الدفع المختارة، ويظهر في صفحة إنهاء الشراء. إذا قام العميل بإختيار طريقة الدفع "المحفظة" (wallet)، سيظهر الخصم مباشرة.
التحديث عند تغيير وسيلة الدفع
تحديث شمل طريقة الدفع يضمن أن العملاء يحصلون دائمًا على معلومات دقيقة. يمكنك إضافة الكود التالي لضمان تحديث صفحة الشراء عند تغيير وسيلة الدفع:
add_action( 'woocommerce_checkout_init', 'update_checkout_on_payment_method_change' );
function update_checkout_on_payment_method_change() {
wc_enqueue_js("$('form.checkout').on( 'change', 'input[name=payment_method]', function(){
$(document.body).trigger('update_checkout');
});");
}
هذا سيؤدي إلى تحديث المجموع الكلي في صفحة الشراء بدون الحاجة إلى إعادة تحميل الصفحة.
عرض الخصومات بقيمتين عشريتين
لضمان عرض الخصوم بالصيغة الصحيحة، من المهم تعديل العرض وفقًا لمتطلبات عدد الفواصل العشرية. يمكن تحقيق ذلك من خلال الكود التالي:
add_filter( 'woocommerce_cart_totals_fee_html', 'filter_woo_cart_totals_fee_html', 10, 2 );
function filter_woo_cart_totals_fee_html( $fee_html, $fee ){
$args = array( 'decimals' => 2 );
return WC()->cart->display_prices_including_tax() ? wc_price( $fee->total + $fee->tax, $args ) : wc_price( $fee->total, $args );
}
هذا الكود سيؤكد عرض قيمة الخصم بما يتوافق مع إعدادات الفواصل العشرية المحددة.
تواصل عرض الخصومات في الطلبات وإشعارات البريد الإلكتروني
للتأكد من أن الخصومات تظهر بصورة صحيحة في الطلبات وإشعارات البريد الإلكتروني، يمكن استخدام الكود التالي:
add_filter( 'woocommerce_get_order_item_totals', 'filter_woo_order_item_fee_totals', 10, 3 );
function filter_woo_order_item_fee_totals( $total_rows, $order, $tax_display ){
foreach ( $total_rows as $key => $data ) {
foreach ( $order->get_fees() as $id => $fee ) {
if( $key === 'fee_'.$id ) {
$args = array( 'currency' => $order->get_currency(), 'decimals' => 2 );
$total_rows[$key]['value'] = wc_price( 'excl' === $tax_display ? (float) $fee->get_total() : (float) $fee->get_total() + (float) $fee->get_total_tax(), $args );
}
}
}
return $total_rows;
}
هذا سيضمن بقاء المعلومات دقيقة وواضحة للعملاء في كل من الطلبات والإشعارات.
خاتمة
بإجراء هذه التعديلات، يمكنك بسهولة عرض الخصوم بقيمتين عشريتين في WooCommerce حتى مع إعدادات الفواصل العشرية بالصفر. يعد هذا التحسين خطوة مهمة لتوفير تجربة تسوق مريحة وموثوقة للعملاء، مما يؤدي إلى زيادة المبيعات ورضا العملاء. اتبع التعليمات المبينة أعلاه، واستمتع بتجربة WooCommerce محسّنة تستجيب لطموحاتك التجارية.