هناك أوقات لا تكون فيها إعدادات صفحة تحرير المنتج كافية. نعم ، عادةً ما تحدد السعر العادي والسعر المخفَّض عبر حقول السعر ضمن “بيانات المنتج” ؛ ومع ذلك ، قد تضطر في بعض الأحيان إلى تجاوز هذه الأسعار عبر الرمز ، نظرًا لأنك تدير عرضًا ترويجيًا خاصًا ، فأنت لا تريد تغيير آلاف الأسعار يدويًا أو ربما تحتاج إلى إظهار قيم مختلفة للعملاء الذين قاموا بتسجيل الدخول فقط.
في كلتا الحالتين ، يتكون “تحديد” سعر المنتج برمجيًا من عمليتين منفصلتين. أولاً ، تحتاج إلى تغيير “عرض” سعر المنتج على الصفحات الفردية والحلقة ؛ ثانيًا ، تحتاج فعليًا إلى تعيين سعر “عنصر سلة التسوق” ، لأن الكود السابق لا يغير قيم السعر حقًا.
كالعادة ، الترميز أسهل مما يُقال ، لذلك دعونا نرى كيف يتم ذلك. يتمتع!
هذه لقطة شاشة لصفحة منتج واحدة بعد تطبيق خصم 20٪ على العملاء الذين قاموا بتسجيل الدخول فقط. كان السعر الأصلي 34 دولارًا
مقتطف PHP: تعديل سعر المنتج برمجيًا @ WooCommerce Frontend
على سبيل المثال ، في المقتطف أدناه ، سنقوم بتغيير سعر معرّف المنتج فقط إذا تم تسجيل دخول المستخدم وكان عميلاً مسجلاً. بالطبع يمكنك تطبيق نفس الإستراتيجية على سيناريوهات حالة مختلفة ، مثل تغيير الأسعار لفئة منتج معينة ، وتطبيق تكلفة إضافية على جميع المنتجات التي تقل عن 10 دولارات ، وما إلى ذلك. التطبيقات لا حصر لها.
/**
* @snippet Alter Product Pricing Part 1 - WooCommerce Product
* @how-to Get CustomizeWoo.com FREE
* @author Rodolfo Melogli
* @compatible WooCommerce 4.1
* @donate $9 https://businessbloomer.com/bloomer-armada/
*/
add_filter( 'woocommerce_get_price_html', 'bbloomer_alter_price_display', 9999, 2 );
function bbloomer_alter_price_display( $price_html, $product ) {
// ONLY ON FRONTEND
if ( is_admin() ) return $price_html;
// ONLY IF PRICE NOT NULL
if ( '' === $product->get_price() ) return $price_html;
// IF CUSTOMER LOGGED IN, APPLY 20% DISCOUNT
if ( wc_current_user_has_role( 'customer' ) ) {
$orig_price = wc_get_price_to_display( $product );
$price_html = wc_price( $orig_price * 0.80 );
}
return $price_html;
}
/**
* @snippet Alter Product Pricing Part 2 - WooCommerce Cart/Checkout
* @how-to Get CustomizeWoo.com FREE
* @author Rodolfo Melogli
* @compatible WooCommerce 4.1
* @donate $9 https://businessbloomer.com/bloomer-armada/
*/
add_action( 'woocommerce_before_calculate_totals', 'bbloomer_alter_price_cart', 9999 );
function bbloomer_alter_price_cart( $cart ) {
if ( is_admin() && ! defined( 'DOING_AJAX' ) ) return;
if ( did_action( 'woocommerce_before_calculate_totals' ) >= 2 ) return;
// IF CUSTOMER NOT LOGGED IN, DONT APPLY DISCOUNT
if ( ! wc_current_user_has_role( 'customer' ) ) return;
// LOOP THROUGH CART ITEMS & APPLY 20% DISCOUNT
foreach ( $cart->get_cart() as $cart_item_key => $cart_item ) {
$product = $cart_item['data'];
$price = $product->get_price();
$cart_item['data']->set_price( $price * 0.80 );
}
}
وهذه لقطة شاشة لنفس المنتج ، في وضع تسجيل الخروج. يوضح هذا سعر المنتج الأصلي (34 دولارًا) وفقًا لإعدادات WooCommerce. يتم عرضه لجميع المستخدمين الذين لم يقوموا بتسجيل الدخول وأيضًا لجميع المستخدمين المسجلين للدخول والذين ليسوا “عملاء”:
المنشورات ذات الصلة:
WooCommerce: POA / Call for Price @ Single Product
WooCommerce: تعيين الحد الأدنى لمبلغ الشراء لمنتج معين
WooCommerce: عرض إجمالي الخصم / التوفير في سلة التسوق والدفع
منطق WooCommerce الشرطي – العلامات والأمثلة و PHP
WooCommerce: راجع ما يوجد داخل مصفوفة العربة (print_r)
WooCommerce: Display٪ Discount @ Shop & Loop Pages
WooCommerce: عرض المنتجات في نموذج طلب جدول
WooCommerce: قم بتغيير كمية إضافة إلى عربة التسوق في قائمة اختيار المنسدلة
WooCommerce: 10 مقتطفات سهلة لزيادة مبيعاتك
WooCommerce: التسعير الديناميكي المجمع بدون مكون إضافي
أين تضيف هذا المقتطف؟
يمكنك وضع مقتطفات PHP في الجزء السفلي من ملف function.php القالب الفرعي الخاص بك (احذف “؟>” إذا كان لديك هناك). من ناحية أخرى ، ينتقل CSS في ملف style.css الخاص بسمة الطفل. تأكد من أنك تعرف ما تفعله عند تحرير مثل هذه الملفات – إذا كنت بحاجة إلى مزيد من الإرشادات ، فيرجى إلقاء نظرة على الفيديو التعليمي المجاني الخاص بي “أين تضع تخصيص WooCommerce؟”
هل هذا المقتطف (لا يزال) يعمل؟
يرجى إعلامي في التعليقات إذا كان كل شيء يعمل كما هو متوقع. يسعدني مراجعة المقتطف إذا أبلغت بخلاف ذلك (يرجى تقديم لقطات شاشة). لقد اختبرت هذا الكود مع موضوع Storefront وإصدار WooCommerce المذكور أعلاه واستضافة صديقة لـ وورد بريس على PHP 7.3.
إذا كنت تعتقد أن هذا الرمز وفر لك الوقت والمال ، فلا تتردد في الانضمام إلى أكثر من 14000 مشترك في WooCommerce Weekly للحصول على تحديثات منشورات المدونة أو أكثر من 250 من مؤيدي Business Bloomer لمدة 365 يومًا من مزايا WooCommerce . شكرا لكم مقدما 🙂
هل تحتاج إلى مساعدة في WooCommerce؟
تحقق من دروس الفيديو المجانية هذه. يمكنك تعلم كيفية تخصيص WooCommerce بدون مكونات إضافية غير ضرورية ، وكيفية تكوين إعدادات البرنامج المساعد WooCommerce بشكل صحيح وحتى كيفية إتقان استكشاف أخطاء WooCommerce في حالة حدوث خطأ!

