حالة المخزون المخصصة لمنتجات WooCommerce في WooCommerce 4
تعد إضافة حالات المخزون المخصصة للمنتجات في WooCommerce 4 عملية واضحة نسبيًا. ومع ذلك، يتطلب الأمر تعديل وظائف محددة للتأكد من عرض الحالات بشكل صحيح في الواجهة الأمامية والخلفية.
إضافة حالات مخزون مخصصة
لإضافة حالات مخزون مخصصة، أضف الكود التالي إلى ملف jobs.php الخاص بك:
function filter_woocommerce_product_stock_status_options( $status ) {
// Add new statuses
$status['pre_order'] = __('Pre Order', 'woocommerce');
$status['contact_us'] = __('Contact us', 'woocommerce');
return $status;
}
add_filter( 'woocommerce_product_stock_status_options', 'filter_woocommerce_product_stock_status_options', 10, 1 );
يضيف هذا الرمز حالتين جديدتين: "الطلب المسبق" و"اتصل بنا".
عرض المخزون المخصص التوفر
لضمان الحالات المخصصة العرض بشكل صحيح في الواجهة الأمامية، قم بتطبيق التغييرات التالية:
// Availability text
function filter_woocommerce_get_availability_text( $availability, $product ) {
// Get stock status
switch( $product->get_stock_status() ) {
case 'pre_order':
$availability = __( 'Pre Order', 'woocommerce' );
break;
case 'contact_us':
$availability = __( 'Contact us', 'woocommerce' );
break;
}
return $availability;
}
add_filter( 'woocommerce_get_availability_text', 'filter_woocommerce_get_availability_text', 10, 2 );
// Availability CSS class
function filter_woocommerce_get_availability_class( $class, $product ) {
// Get stock status
switch( $product->get_stock_status() ) {
case 'pre_order':
$class = 'pre-order';
break;
case 'contact_us':
$class = 'contact-us';
break;
}
return $class;
}
add_filter( 'woocommerce_get_availability_class', 'filter_woocommerce_get_availability_class', 10, 2 );
عرض حالة المخزون في قائمة منتجات الإدارة
لعرض حالات المخزون المخصصة في قائمة منتجات الإدارة الجدول، قم بتعديل الوظيفة التالية:
// Admin stock html
function filter_woocommerce_admin_stock_html( $stock_html, $product ) {
// Simple
if ( $product->is_type( 'simple' ) ) {
// Get stock status
$product_stock_status = $product->get_stock_status();
// Variable
} elseif ( $product->is_type( 'variable' ) ) {
foreach( $product->get_visible_children() as $variation_id ) {
// Get product
$variation = wc_get_product( $variation_id );
// Get stock status
$product_stock_status = $variation->get_stock_status();
}
}
// Stock status
switch( $product_stock_status ) {
case 'pre_order':
$stock_html = '<mark class="pre-order" style="background:transparent none;color:#33ccff;font-weight:700;line-height:1;">' . __( 'Pre order', 'woocommerce' ) . '</mark>';
break;
case 'contact_us':
$stock_html = '<mark class="contact-us" style="background:transparent none;color:#cc33ff;font-weight:700;line-height:1;">' . __( 'Contact us', 'woocommerce' ) . '</mark>';
break;
}
return $stock_html;
}
add_filter( 'woocommerce_admin_stock_html', 'filter_woocommerce_admin_stock_html', 10, 2 );
اختياري: استخدام حالة المخزون المخصصة في الخطافات
يمكنك استخدام حالات المخزون المخصصة في الخطافات عندما لديك حق الوصول إلى كائن $product أو يمكنك استخدامه global $product.
ملاحظة:
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3