ها هي القصة: أنا أعمل مع أحد عملائي المستقلين وأحتاج إلى إظهار محتوى معين في Checkout (“شروط وأحكام” خاصة بالمنتج) إذا كان هذا المنتج موجودًا في سلة التسوق.
الآن ، لقد بحثت دائمًا عن المنتجات في عربة التسوق عن طريق “التكرار” عبر عربة التسوق باستخدام foreach (هنا ، على سبيل المثال: تطبيق قسيمة برمجيًا إذا كان المنتج موجودًا في سلة التسوق ). ولكن كما قلت ، بعد إجراء بعض الأبحاث العشوائية ، اكتشفت وظيفة WooCommerce سحرية أخرى: ” find_product_in_cart () “. مما يعني أن العثور على منتج في عربة التسوق لا يتطلب حلقات مخصصة أو PHP معقدة … إنه مجرد “خط واحد”. يتمتع!
WooCommerce: اكتشف ما إذا كان معرف المنتج موجودًا في سلة التسوق
مقتطف PHP: تحقق بسهولة مما إذا كان معرف المنتج موجودًا في سلة التسوق – WooCommerce
ملاحظة: أعتقد أن هذه الطريقة تعمل فقط مع المنتجات “البسيطة” . في حالة استخدام المقتطف البديل الذي تجده أدناه.
/**
* @snippet Check if Product ID is in the Cart - WooCommerce
* @how-to Get CustomizeWoo.com FREE
* @author Rodolfo Melogli
* @testedwith WooCommerce 3.9
* @donate $9 https://businessbloomer.com/bloomer-armada/
*/
add_action( 'woocommerce_before_cart', 'bbloomer_find_product_in_cart' );
function bbloomer_find_product_in_cart() {
$product_id = 282;
$product_cart_id = WC()->cart->generate_cart_id( $product_id );
$in_cart = WC()->cart->find_product_in_cart( $product_cart_id );
if ( $in_cart ) {
$notice = 'Product ID ' . $product_id . ' is in the Cart!';
wc_print_notice( $notice, 'notice' );
}
}
PHP Snippet Alternative (الطريقة “القديمة” ، لا تزال تعمل): تحقق مما إذا كان معرف المنتج موجودًا في سلة التسوق عبر Foreach Loop – WooCommerce
/**
* @snippet Check if Product ID is in the Cart (Alternative) - WooCommerce
* @how-to Get CustomizeWoo.com FREE
* @author Rodolfo Melogli
* @testedwith WooCommerce 3.9
* @donate $9 https://businessbloomer.com/bloomer-armada/
*/
add_action( 'woocommerce_before_cart', 'bbloomer_find_product_in_cart_alt' );
function bbloomer_find_product_in_cart_alt() {
$product_id = 282;
$in_cart = false;
foreach( WC()->cart->get_cart() as $cart_item ) {
$product_in_cart = $cart_item['product_id'];
if ( $product_in_cart === $product_id ) $in_cart = true;
}
if ( $in_cart ) {
$notice = 'Product ID ' . $product_id . ' is in the Cart!';
wc_print_notice( $notice, 'notice' );
}
}
المنشورات ذات الصلة:
WooCommerce: أضف منتجًا إلى عربة التسوق عند الزيارة برمجيًا
WooCommerce: عرض إجمالي الخصم / التوفير في سلة التسوق والدفع
منطق WooCommerce الشرطي – العلامات والأمثلة و PHP
WooCommerce: عرض الوزن الإجمالي في سلة التسوق والدفع
WooCommerce: تقسيم عناصر السلة عند كمية المنتج> 1
WooCommerce: قم بتغيير كمية إضافة إلى عربة التسوق في قائمة اختيار المنسدلة
WooCommerce: عرض الفئات ضمن Product Name @ Cart
WooCommerce: التسعير الديناميكي المجمع بدون مكون إضافي
WooCommerce: جدول عربة التسوق “منقسم” (عناوين A> Z)
WooCommerce: عرض SKU @ Cart ، الخروج ، الطلب ورسائل البريد الإلكتروني
أين تضيف هذا المقتطف؟
يمكنك وضع مقتطفات PHP في الجزء السفلي من ملف function.php القالب الفرعي الخاص بك (احذف “؟>” إذا كان لديك هناك). من ناحية أخرى ، ينتقل CSS في ملف style.css الخاص بسمة الطفل. تأكد من أنك تعرف ما تفعله عند تحرير مثل هذه الملفات – إذا كنت بحاجة إلى مزيد من الإرشادات ، فيرجى إلقاء نظرة على الفيديو التعليمي المجاني الخاص بي “أين تضع تخصيص WooCommerce؟”
هل هذا المقتطف (لا يزال) يعمل؟
يرجى إعلامي في التعليقات إذا كان كل شيء يعمل كما هو متوقع. يسعدني مراجعة المقتطف إذا أبلغت بخلاف ذلك (يرجى تقديم لقطات شاشة). لقد اختبرت هذا الكود مع موضوع Storefront وإصدار WooCommerce المذكور أعلاه واستضافة صديقة لـ وورد بريس على PHP 7.3.
إذا كنت تعتقد أن هذا الرمز وفر لك الوقت والمال ، فلا تتردد في الانضمام إلى أكثر من 14000 مشترك في WooCommerce Weekly للحصول على تحديثات منشورات المدونة أو أكثر من 250 من مؤيدي Business Bloomer لمدة 365 يومًا من مزايا WooCommerce . شكرا لكم مقدما 🙂
هل تحتاج إلى مساعدة في WooCommerce؟
تحقق من دروس الفيديو المجانية هذه. يمكنك تعلم كيفية تخصيص WooCommerce بدون مكونات إضافية غير ضرورية ، وكيفية تكوين إعدادات البرنامج المساعد WooCommerce بشكل صحيح وحتى كيفية إتقان استكشاف أخطاء WooCommerce في حالة حدوث خطأ!