إضافة الوزن الإجمالي للطلبات في قائمة ووردبريس ووكومرس
في عالم التجارة الإلكترونية، تُعتبر إدارة الطلبات من العناصر الأساسية لتحقيق النجاح. إحدى المميزات المهمة التي يمكن إضافتها لقائمة الطلبات في WooCommerce هي إمكانية عرض الوزن الإجمالي للطلب. يعكس الوزن الكلي للطلب معلومات قيمة قد تساعدك في تحسين معالجة الشحن وتقديم خدمة أفضل للعملاء. في هذا المقال، سنتناول كيفية إضافة الوزن الإجمالي للطلب إلى قائمة الطلبات في إدارة WooCommerce بطريقة متوافقة مع HPOS.
فهم النظام HPOS
قبل أن نبدأ في عملية الإضافة، من المهم أن نفهم ما هو HPOS (High Performance Order Storage). يوفر هذا النظام تحسينات في الأداء وتقليل الزمن المستغرق في معالجة البيانات، مما يساعد المتاجر الأكثر ازدحامًا على العمل بكفاءة. لذا، ما سنقوم بفعله هو تضمين الوزن الإجمالي ضمن القائمة بحيث يتوافق مع النظام HPOS، مما يجعل إدارتك أكثر سهولة وفعالية.
خطوات إضافة الوزن الإجمالي للطلبات
للقيام بإضافة الوزن الإجمالي للطلب إلى قائمة الطلبات في WooCommerce، سنقوم باتباع مجموعة من الخطوات البرمجية.
في البداية، ستحتاج إلى إضافة بعض التعليمات البرمجية إلى ملف functions.php
لموضوع الطفل الذي تستخدمه، أو يمكنك إنشاؤها كمكون إضافي خاص بك.
add_filter( 'manage_woocommerce_page_wc-orders_columns', 'add_custom_columns_to_admin_orders', 20 );
add_filter( 'manage_edit-shop_order_columns', 'add_custom_columns_to_admin_orders', 20 );
function add_custom_columns_to_admin_orders( $columns ) {
return array_merge( $columns, ['total_weight' => __( 'الوزن', 'woocommerce' )] );
}
add_action('manage_woocommerce_page_wc-orders_custom_column', 'custom_columns_content_in_admin_orders', 10, 2);
add_action( 'manage_shop_order_posts_custom_column', 'custom_columns_content_in_admin_orders', 10, 2);
function custom_columns_content_in_admin_orders( $column, $order ) {
if( ! is_a($order, 'WC_Order') && $order > 0 ) {
$order = wc_get_order( $order );
}
if ( 'total_weight' === $column ) {
$total_weight = $order->get_meta('_cart_weight');
echo $total_weight > 0 ? wc_format_weight($total_weight) : __('N/A', 'woocommerce');
}
}
تحديث الوزن الإجمالي عند إنشاء الطلب
عند إتمام عملية الدفع، يجب أن نضمن أن الوزن يتم تحديثه بشكل صحيح. يمكن تحقيق ذلك باستخدام الكود التالي:
add_action('woocommerce_checkout_create_order', 'add_checkout_order_total_weight', 100);
function add_checkout_order_total_weight( $order ) {
$order->update_meta_data('_cart_weight', WC()->cart->get_cart_contents_weight());
}
إعادة حساب الوزن عند تعديل الطلبات
في حال كنت بحاجة إلى إعادة حساب الوزن عند تعديل الطلبات، إليك الكود المناسب لذلك:
add_action( 'woocommerce_process_shop_order_meta', 'add_edit_admin_order_total_weight', 60 );
function add_edit_admin_order_total_weight( $order_id ) {
$order = wc_get_order($order_id);
$total_weight = 0;
foreach ( $order->get_items() as $item ) {
$product = $item->get_product();
$weight = (float) $product->get_weight();
$total_weight += $weight > 0 ? $item->get_quantity() * $weight : 0;
}
$initial_total_weight = (float) $order->get_meta('_cart_weight');
if ( $initial_total_weight !== $total_weight ) {
$order->update_meta_data('_cart_weight', WC()->cart->get_cart_contents_weight());
$order->save();
}
}
المزامنة مع الطلبات القديمة (اختياري)
إذا كان لديك طلبات قديمة، يمكنك مزامنتها مع النظام HPOS باستخدام أدوات المزامنة المتاحة. هذا سيساعدك في التأكد من تطابق البيانات القديمة مع النظام الجديد.
بهذه الطريقة، يمكنك إضافة الوزن الإجمالي للطلب إلى قائمة الطلبات في WooCommerce بسهولة وبطريقة متوافقة مع HPOS. إذا اتبعت هذه الخطوات، ستلاحظ تحسنًا في إدارة الطلبات الخاصة بك، مما سيساهم في تحسين تجربة العملاء وزيادة كفاءة العمل.
بهذه الطريقة نكون قد سلطنا الضوء على أهمية إضافة الوزن الإجمالي للطلب وكيفية تنفيذ ذلك بدقة في WooCommerce. الأهم من كل شيء هو التركيز على تحسين تجربة المستخدم وزيادة فعالية العمليات داخل متجرك الإلكتروني.