تخصيص سعر المنتج في الواجهة إذا تم تعيينه في الووكومرس
عندما تتعامل مع WooCommerce كمنصة للتجارة الإلكترونية، قد ترغب في تخصيص أسعار المنتجات لتعكس العروض الخاصة أو التخفيضات. من خلال إعداد أسعار مخصصة في واجهة المستخدم، يمكنك تحسين تجربة الشراء للعملاء وزيادة المبيعات. في هذا المقال، سنناقش كيفية استبدال سعر المنتج في الواجهة الأمامية إذا تم تحديده في واجهة الإدارة في WooCommerce.
إضافة حقول الأسعار المخصصة في واجهة الإدارة
للبدء، تحتاج إلى إنشاء حقول جديدة في صفحة إضافة أو تعديل المنتج في ووردبريس. يمكن تحقيق ذلك باستخدام بعض الأكواد البسيطة. هنا، نقوم بإنشاء حقلين لتحديد سعرين مخصصين. يتم استخدام الدالة woocommerce_wp_text_input
لإضافة هذه الحقول، حيث سنقوم بإضافة سعر مخفض وسعر عرض خاص. في هذه الخطوة، عليك إدراج الكود التالي في ملف functions.php
الخاص بالقالب الفرعي الخاص بك:
function show_custom_price_admin() {
global $post_id;
woocommerce_wp_text_input(
array(
'id' => 'price_1',
'name' => '_price_1',
'value' => get_post_meta( $post_id, '_price_1', true ),
'class' => 'wc_input_price short',
'label' => __( 'سعر التخفيض ($)', 'vg' ),
)
);
woocommerce_wp_text_input(
array(
'id' => 'price_2',
'name' => '_price_2',
'value' => get_post_meta( $post_id, '_price_2', true ),
'class' => 'wc_input_price short',
'label' => __( 'سعر العرض الخاص ($)', 'vg' ),
)
);
}
add_action( 'woocommerce_product_options_pricing', 'show_custom_price_admin' );
تحديث البيانات المخصصة في واجهة الإدارة
بعد إضافة حقول الأسعار، تحتاج أيضاً إلى التأكد من أن البيانات المدخلة يتم حفظها بشكل صحيح عند تحديث المنتج. يمكنك استخدام الدالة process_product_custom_data
للقيام بذلك. تأكد من إضافة الكود التالي:
function process_product_custom_data( $post_id ) {
$product = wc_get_product( $post_id );
if ( isset( $_POST['_price_1'] ) ) {
$product->update_meta_data( '_price_1', wc_clean( $_POST['_price_1'] ) );
}
if ( isset( $_POST['_price_2'] ) ) {
$product->update_meta_data( '_price_2', wc_clean( $_POST['_price_2'] ) );
}
$product->save();
}
add_action( 'woocommerce_process_product_meta', 'process_product_custom_data' );
عرض أسعار المنتجات المخصصة في الواجهة الأمامية
الآن، لنقوم بعرض السعر المخصص في متاجرنا. سيتم استخدام الدالة show_custom_price_frontend
لعرض السعر المناسب اعتمادًا على القيم المدخلة. إليك الكود الذي يمكنك استخدامه:
function show_custom_price_frontend() {
global $product;
if ( $product->is_type( 'simple' ) ) {
$price_2 = get_post_meta( $product->get_id(), '_price_2', true );
$price_1 = get_post_meta( $product->get_id(), '_price_1', true );
$regular_price = $product->get_regular_price();
$display_price = $price_2 ?: ( $price_1 ?: $regular_price );
if ( $display_price ) {
echo sprintf( '%s', wc_price( $display_price ) );
}
}
}
add_action( 'woocommerce_single_product_summary', 'show_custom_price_frontend', 10 );
تجاوز سعر المنتج في عربة التسوق
لضمان أن يظهر السعر المحدد في عربة التسوق، يجب عليك استخدام دالة override_cart_price
. هذا يضمن أن السعر الذي يدخل في العربة هو نفس السعر الذي قمت بضبطه. إليك كيفية تطبيق ذلك:
function override_cart_price( $cart_object ) {
foreach ( $cart_object->get_cart() as $cart_item ) {
$product = $cart_item['data'];
if ( $product->is_type( 'simple' ) ) {
$price_2 = get_post_meta( $product->get_id(), '_price_2', true );
$price_1 = get_post_meta( $product->get_id(), '_price_1', true );
$price = $price_2 ?: ( $price_1 ?: $product->get_regular_price() );
if ( $price ) {
$cart_item['data']->set_price( $price );
}
}
}
}
add_action( 'woocommerce_before_calculate_totals', 'override_cart_price', 10, 1 );
الخاتمة
باستخدام الأكواد السابقة، يمكنك بسهولة تخصيص أسعار المنتجات في WooCommerce بحيث تعكس العروض الخاصة أو التخفيضات التي تقدمها. من خلال هذا النظام، ستتمكن من استبدال سعر المنتج في الواجهة الأمامية إذا تم تحديده في WooCommerce Backend، مما يعطي لعملائك عرضًا أكثر جاذبية وملاءمة. إذا كنت تبحث عن طريقة لزيادة مبيعاتك وتحسين تجربة العملاء، فإن تنفيذ أسعار مخصصة يعد خطوة هامة.