منطق WooCommerce الشرطي – العلامات والأمثلة و PHP

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

يمكن استخدام العلامات الشرطية لـ WooCommerce و وورد بريس (“المنطق الشرطي لـ WooCommerce و وورد بريس”) في function.php لعرض المحتوى بناءً على شروط معينة. على سبيل المثال ، يمكنك عرض محتوى مختلف لفئات مختلفة ضمن وظيفة PHP واحدة.

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

أولاً: كيفية استخدام المنطق الشرطي

قد يكون لديك مقتطف PHP (أي من تلك التي تجدها على موقع الويب هذا على سبيل المثال) ، يقوم بشيء مثل هذا:

add_action( 'woocommerce_before_single_product', 'bbloomer_echo_text' ); 
 
function bbloomer_echo_text() { 
   echo 'SOME TEXT'; 
} 

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

وبالتالي ، فإن الطريقة التي تحتاجها لتعديل الوظيفة المذكورة أعلاه هي عن طريق “لف” كامل داخل الوظيفة داخل فحص شرطي: إذا كان المنتج 25 ، فافعل هذا ، إذا لم تفعل شيئًا.

لذلك ستصبح الوظيفة:

add_action( 'woocommerce_before_single_product', 'bbloomer_echo_text' );
 
function bbloomer_echo_text() {
   global $product;
   if ( 25 === $product->get_id() ) {
      echo 'SOME TEXT';
   }
}

كما ترى ، يحدث “الصدى” فقط إذا كانت الحالة صحيحة. الآن ، استمر في القراءة لمزيد من أمثلة المنطق الشرطي!

1. هل تعمل على صفحة منتج واحد لـ WooCommerce؟

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

PHP: افعل شيئًا على صفحات منتج واحد فقط
add_action( 'woocommerce_before_main_content', 'bbloomer_single_product_pages' );
 
function bbloomer_single_product_pages() {
 
if ( is_product() ) {
echo 'Something';
} else {
echo 'Something else';
}
 
}
PHP: افعل شيئًا إذا كان معرف المنتج = XYZ
add_action( 'woocommerce_after_single_product_summary', 'bbloomer_single_product_ID' );
 
function bbloomer_single_product_ID() {
 
if ( is_single( '17' ) ) {
echo 'Something';
} elseif ( is_single( '56' ) ) {
echo 'Something else';
}
 
}
PHP: افعل شيئًا إذا كان المنتج ينتمي إلى فئة
add_action( 'woocommerce_after_single_product_summary', 'bbloomer_single_category_slug' );
 
function bbloomer_single_category_slug() {
 
if ( has_term( 'chairs', 'product_cat' ) ) {
echo 'Something';
} elseif ( has_term( 'tables', 'product_cat' ) ) {
echo 'Something else';
}
 
}
PHP: افعل شيئًا إذا كان المنتج ينتمي إلى علامة
dd_action( 'woocommerce_after_single_product_summary', 'bbloomer_single_tag_slug' );
 
function bbloomer_single_tag_slug() {
 
if ( has_term( 'blue', 'product_tag' ) ) {
echo 'Something';
} elseif ( has_term( 'red', 'product_tag' ) ) {
echo 'Something else';
}
 
}
PHP: افعل شيئًا إذا كان المنتج معروضًا للبيع
add_action( 'woocommerce_after_single_product_summary', 'bbloomer_single_on_sale' );
 
function bbloomer_single_on_sale() {
global $product;
if ( $product->is_on_sale() ) {
 // do something
}
 
}
PHP: افعل شيئًا إذا كان المنتج بسيطًا أو متغيرًا أو خارجيًا …
add_action( 'woocommerce_after_single_product_summary', 'bbloomer_single_product_type' );
 
function bbloomer_single_product_type() {
global $product;
if( $product->is_type( 'simple' ) ){
 // do something
} elseif( $product->is_type( 'variable' ) ){
 // do something
} elseif( $product->is_type( 'external' ) ){
 // do something
} elseif( $product->is_type( 'grouped' ) ){
 // do something
} 
 
}
PHP: افعل شيئًا إذا كان المنتج افتراضيًا
add_action( 'woocommerce_after_single_product_summary', 'bbloomer_single_virtual' );
 
function bbloomer_single_virtual() {
global $product;
if( $product->is_virtual() ){
 // do something
} 
 
}
PHP: افعل شيئًا إذا كان المنتج قابلاً للتنزيل
add_action( 'woocommerce_after_single_product_summary', 'bbloomer_single_downloadable' );
 
function bbloomer_single_downloadable() {
global $product;
if ( $product->is_downloadable() ){
 // do something
} 
 
}
PHP: افعل شيئًا ما على المنتجات ذات الصلة فقط

يتم إنشاء المنتجات ذات الصلة بواسطة “حلقة”. في بعض الأحيان قد ترغب في استخدام PHP الخاص بك على صفحة منتج واحد فقط (باستثناء الصفحات ذات الصلة) أو العكس.

يخفي المقتطف أدناه السعر فقط في صفحة منتج واحد وفقط في قسم المنتجات ذات الصلة.

add_filter( 'woocommerce_variable_price_html', 'bbloomer_remove_variation_price', 10, 2 );
 
function bbloomer_remove_variation_price( $price ) {
 
global $woocommerce_loop;
 
if ( is_product() && $woocommerce_loop['name'] == 'related' ) {
$price = '';
}
 
return $price;
}

2. هل تعمل على صفحة متجر / فئة WooCommerce؟

يمكنك العثور على جميع خطاطيف متجر / أرشيف WooCommerce هنا. دعونا نرى كيفية استخدام المنطق الشرطي في صفحات “الحلقة” هذه:

PHP: افعل شيئًا على صفحة المتجر فقط

add_action( 'woocommerce_before_main_content', 'bbloomer_loop_shop' );
 
function bbloomer_loop_shop() {
 
if ( is_shop() ) {
echo 'This will show on the Shop page';
} else {
echo 'This will show on all other Woo pages';
}
 
}
PHP: افعل شيئًا ما على كل منتج في صفحات الحلقة
add_action( 'woocommerce_after_shop_loop_item', 'bbloomer_loop_per_product' );
 
function bbloomer_loop_per_product() {
 
if ( has_term( 'chairs', 'product_cat' ) ) {
echo 'Great chairs!';
} elseif ( has_term( 'tables', 'product_cat' ) ) {
echo 'Awesome tables!';
}
PHP: افعل شيئًا على صفحات الفئات فقط
add_action( 'woocommerce_before_main_content', 'bbloomer_loop_cat' );
 
function bbloomer_loop_cat() {
 
if ( is_product_category() ) {
echo 'This will show on every Cat pages';
} else {
echo 'This will show on all other Woo pages';
}
 
}
PHP: افعل شيئًا بناءً على اسم الفئة
add_action( 'woocommerce_before_main_content', 'bbloomer_loop_cat_slug' );
 
function bbloomer_loop_cat_slug() {
 
if ( is_product_category( 'books' ) ) {
echo 'This will show on the Books Cat page';
} elseif ( is_product_category( 'chairs' ) ) {
echo 'This will show on the Chairs Cat page';
}
 
}
PHP: افعل شيئًا على صفحات العلامات فقط
add_action( 'woocommerce_before_main_content', 'bbloomer_loop_tag' );
 
function bbloomer_loop_tag() {
 
if ( is_product_tag() ) {
echo 'This will show on every Cat pages';
} else {
echo 'This will show on all other Woo pages';
}
 
}
PHP: افعل شيئًا بناءً على اسم العلامة
add_action( 'woocommerce_before_main_content', 'bbloomer_loop_tag_slug' );
 
function bbloomer_loop_tag_slug() {
 
if ( is_product_tag( 'red' ) ) {
echo 'This will show on the Red Tag page';
} elseif ( is_product_tag( 'yellow' ) ) {
echo 'This will show on the Yellow Tag page';
}
 
}

3. هل تعمل على صفحات WooCommerce؟

PHP: افعل شيئًا إذا كنت على صفحة WooCommerce (باستثناء عربة التسوق / الخروج ، مثل التسوق والقطط والعلامات والمنتجات)
add_action( 'woocommerce_before_main_content', 'bbloomer_woo_page' );
 
function bbloomer_woo_page() {
   if ( is_woocommerce() ) {
      echo 'This will show on Woo pages';
   } else {
      echo 'This will show on WP pages';
   }
}
PHP: افعل شيئًا إذا كنت في سلة التسوق / الخروج
add_action( 'woocommerce_sidebar', 'bbloomer_cart_checkout' );
 
function bbloomer_cart_checkout() {
   if ( is_cart() ) {
      echo 'This will show on the Cart sidebar';
   } elseif ( is_checkout() ) {
      echo 'This will show on the Checkout sidebar';
   }
}
PHP: افعل شيئًا ما إذا كنت في صفحة الدفع لطلب الشراء
add_action( 'hook', 'bbloomer_orderpay' );
 
function bbloomer_orderpay() {
   if ( is_checkout_pay_page() ) {
      echo 'This will show on Order Pay page';
   } else {
      echo 'This will show on all other pages';
   }
}
PHP: افعل شيئًا في صفحات حسابي
add_action( 'hook', 'bbloomer_myaccount' );
 
function bbloomer_myaccount() {
   if ( is_account_page() ) {
      echo 'This will show on My Account pages';
   } else {
      echo 'This will show on pages different than My Account';
   }
}
PHP: افعل شيئًا إذا كنت في صفحة الشكر

يمكنك بسهولة تشغيل الوظائف على صفحة شكرًا لك باستخدام خطاف woocommerce_thankyou :

add_action( 'woocommerce_thankyou', 'bbloomer_run_function_thankyou_page' );
  
function bbloomer_run_function_thankyou_page() {
   // whatever
}

بخلاف ذلك ، يمكنك استخدام شرط آخر ، حتى تعرف أنك في “نقطة نهاية صفحة شكرًا لك”:

add_action( 'wp_head', 'bbloomer_run_function_thankyoupage' );
 
function bbloomer_run_function_thankyoupage() {
   if ( is_wc_endpoint_url( 'order-received' ) {
      // whatever
   }
}

المنشورات ذات الصلة:

WooCommerce: عرض السعر العادي وسعر البيع في جدول عربة التسوق

WooCommerce: المجموع الفرعي لسلة التسوق المقطوعة في حالة القسيمة @ السلة

WooCommerce: عرض إجمالي عنصر سلة التسوق مع خصم القسيمة

WooCommerce: راجع ما يوجد داخل مصفوفة العربة (print_r)

WooCommerce: POA / Call for Price @ Single Product

WooCommerce: إجبار سلة التسوق على المبلغ المحدد (الإيداع)

WooCommerce: التسعير الديناميكي المجمع بدون مكون إضافي

WooCommerce: تعيين الحد الأدنى لمبلغ الشراء لمنتج معين

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

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 }}