WooCommerce: تعيين / تجاوز سعر المنتج برمجيًا

A VPN is an essential component of IT security, whether you’re just starting a business or are already up and running. Most business interactions and transactions happen online and VPN

هناك أوقات لا تكون فيها إعدادات صفحة تحرير المنتج كافية. نعم ، عادةً ما تحدد السعر العادي والسعر المخفَّض عبر حقول السعر ضمن “بيانات المنتج” ؛ ومع ذلك ، قد تضطر في بعض الأحيان إلى تجاوز هذه الأسعار عبر الرمز ، نظرًا لأنك تدير عرضًا ترويجيًا خاصًا ، فأنت لا تريد تغيير آلاف الأسعار يدويًا أو ربما تحتاج إلى إظهار قيم مختلفة للعملاء الذين قاموا بتسجيل الدخول فقط.

في كلتا الحالتين ، يتكون “تحديد” سعر المنتج برمجيًا من عمليتين منفصلتين. أولاً ، تحتاج إلى تغيير “عرض” سعر المنتج على الصفحات الفردية والحلقة ؛ ثانيًا ، تحتاج فعليًا إلى تعيين سعر “عنصر سلة التسوق” ، لأن الكود السابق لا يغير قيم السعر حقًا.

كالعادة ، الترميز أسهل مما يُقال ، لذلك دعونا نرى كيف يتم ذلك. يتمتع!

هذه لقطة شاشة لصفحة منتج واحدة بعد تطبيق خصم 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 في حالة حدوث خطأ!

توضيح

اي عملية نسخ او اقتباس او ترجمة او نقل تم لاغراض علمية وتدريبية وتعليمية بحته وقد تم انشاء هذا المحتوى بمعرفة خبراء في مجال التقنية اما عن طريق إنشاء او تحرير او نقل او نسخ او اقتباس او ترجمة المحتوى من مصادر خاصة او عامة وكل ذلك ضمن حقوق النشر المتعارف عليها.

اي أخطاء تظهر في المحتوى مهما كان نوعه او تصنيفه يمكنك تحرير رسالة فورية لادارة موثوق لاجل تصحيح هذه الاخطاء، وسنكون شاكرين لك في حال قمت بالتعاون معنا لاجل اصلاح هذه الاخطاء.

شاركنا رايك وتقييمك للموضوع

{{ reviewsTotal }}{{ options.labels.singularReviewCountLabel }}
{{ reviewsTotal }}{{ options.labels.pluralReviewCountLabel }}
{{ options.labels.newReviewButton }}
{{ userData.canReview.message }}