ترفندهای ووکامرس، توسعه و شخصی سازی بخش 1

ترفندهای ووکامرس، توسعه و شخصی سازی بخش ۱

افزونه ووکامرس از بهترین فروشگاه سازهای وردپرس است و از توسعه و انعطاف بالایی برخوردار است.

در این مقاله مجموعه‌ای از ترفندهای کاربردی را برای توسعه ووکامرس آماده گام به گام کرده‌ایم.

به دلیل طولانی بودن تعداد ترفندها، این مقاله چند بخش تقسیم شده که می‌توانید آن‌ها را دنبال کنید.

خب بدون وقفه بریم سراغ ترفندهای افزونه دوستداشتنی ووکامرس، با تیم تولید محتوای تم فور همراه باشید.

ترفند ۱: فیلد دلخواه در باکس ویرایش سریع محصول

فیلدهای دلخواه از پراستفاده‌ترین سفارش سازی‌ها در طراحی وب سایت خصوصاً وردپرس به شمار می‌رود.

با افزودن یک فیلد دلخواه، می‌توانید از آن برای کاربردهای مختلفی در ووکامرس خود استفاده کنید.

ترفند 1: فیلد دلخواه در باکس ویرایش سریع محصول 1
ترفند 1: فیلد دلخواه در باکس ویرایش سریع محصول 2
ترفند 1: فیلد دلخواه در باکس ویرایش سریع محصول 3

قطعه کد زیر را در انتها یا ابتدای فایل functions.php قالب یا چایلد تم قالب خود قرار بدید و آن را ذخیره کنید.

مهم و ضروری! قبل از افزودن کدها به فایل فانکشن قالب، یک کپی از این فایل بعنوان بک آپ بگیرید.

				
					 /**
 * @snippet       Add Custom Field @ WooCommerce Quick Edit Product
 * @post          WooCommerce Customization & Development Tricks - Part 1
 * @developer     themefour
 * @testedwith    WooCommerce 6.1
 * @website       https://themefour.com/
 */
  
add_action( 'woocommerce_product_quick_edit_start', 'themefour_show_custom_field_quick_edit' );
 
function themefour_show_custom_field_quick_edit() {
   global $post;
   ?>
   <label>
      <span class="title">فیلد دلخواه</span>
      <span class="input-text-wrap">
         <input type="text" name="_custom_field" class="text" value="">
      </span>
   </label>
   <br class="clear" />
   <?php
}
 
add_action( 'manage_product_posts_custom_column', 'themefour_show_custom_field_quick_edit_data', 9999, 2 );
 
function themefour_show_custom_field_quick_edit_data( $column, $post_id ){
    if ( 'name' !== $column ) return;
    echo '<div>فیلد دلخواه: <span id="cf_' . $post_id . '">' . esc_html( get_post_meta( $post_id, '_custom_field', true ) ) . '</span></div>';
   wc_enqueue_js( "
      $('#the-list').on('click', '.editinline', function() {
         var post_id = $(this).closest('tr').attr('id');
         post_id = post_id.replace('post-', '');
         var custom_field = $('#cf_' + post_id).text();
         $('input[name=\'_custom_field\']', '.inline-edit-row').val(custom_field);
        });
   " );
}
 
add_action( 'woocommerce_product_quick_edit_save', 'themefour_save_custom_field_quick_edit' );
 
function themefour_save_custom_field_quick_edit( $product ) {
    $post_id = $product->get_id();
    if ( isset( $_REQUEST['_custom_field'] ) ) {
        $custom_field = $_REQUEST['_custom_field'];
        update_post_meta( $post_id, '_custom_field', wc_clean( $custom_field ) );
    }
}
				
			
ترفند ۲: اجباری کردن نمایش تب نظرات محصولات

با استفاده از قطعه کد زیر می‌توانید تب نظرات را همیشه و به صورت اجباری در محصولات نمایش دهید.

حتی اگر در صفحۀ ویرایش محصول، گزینه فعال سازی نقد و بررسی تیک نخورده باشد، باز نظرات را خواهید داشت.

ترفند 2: اجباری کردن نمایش تب نظرات محصولات

در این حالت ممکن است به هر دلیلی فعال سازی نقد و بررسی را فراموش کرده باشید.

اینجاست که این قطعه کد به شما کمک می‌کند که به صورت سراسری همیشه نظرات محصولات باشند.

ترفند 2: اجباری کردن نمایش تب نظرات محصولات 2
				
					 /**
 * @snippet       Override & Force Enable Reviews @ WooCommerce Products
 * @post          WooCommerce Customization & Development Tricks - Part 1
 * @developer    themefour
 * @testedwith    WooCommerce 6.1
 * @website       https://themefour.com/
 */
 
add_filter( 'comments_open', 'themefour_force_enable_reviews', 9999, 2 );
 
function themefour_force_enable_reviews( $enable, $post_id ) {
   if ( 'product' === get_post_type( $post_id ) ) {
      $enable = true;
   }
   return $enable;
}
				
			
ترفند ۳: اجباری کردن فروش تکی برای همه محصولات

محصولاتی دارید که تنها باید یکبار فروش بروند؟ محصولات دانلودی دارید؟ این قطعه کد برای شماست.

اگر نمی‌خواهید روی تک تک محصولات گزینه فروش تکی را فعال کنید و تعداد محصولاتی زیادی دارید.

ترفند 3: اجباری کردن فروش تکی برای همه محصولات
آموزش ترفندهای ووکامرس - سایت تم فور
				
					/**
 * @snippet       Override & Force Sold Individually @ WooCommerce Products
 * @post          WooCommerce Customization & Development Tricks - Part 1
 * @developer     themefour
 * @testedwith    WooCommerce 6.1
 * @website       https://themefour.com/
 */
 
add_filter( 'woocommerce_is_sold_individually', '__return_true' );
				
			

با این قطعه کد، هر محصول توسط مشتری تنها می‌تواند یکبار به سبد خرید اضافه شود.

ترفند ۴: مخفی کردن قیمت محصولات ناموجود

با این قطعه کد کاربردی می‌توانید قیمت کالاهایی که دیگر در انبار شما موجود نیستند را مخفی کنید.

ترفند 4: مخفی کردن قیمت محصولات ناموجود
				
					/**
 * @snippet       Hide Price If Out of Stock @ WooCommerce Frontend
 * @post          WooCommerce Customization & Development Tricks - Part 1
 * @developer     themefour
 * @testedwith    WooCommerce 6.1
 * @website       https://themefour.com/
 */
  
add_filter( 'woocommerce_get_price_html', 'themefour_hide_price_if_out_stock_frontend', 9999, 2 );

function themefour_hide_price_if_out_stock_frontend( $price, $product ) {
	if ( is_admin() ) return $price; // BAIL IF BACKEND
	if ( ! $product->is_in_stock() ) {
		$price = apply_filters( 'woocommerce_empty_price_html', '', $product );
	}
	return $price;
}
				
			

ووکامرس به صورت پیش‌فرض حتی اگر محصول ناموجود باشد قیمت آن را نمایش می‌دهد.

ترفند ۵: نمایش موجودی کالا در ایمیل سفارش

به این فکر کردید که می‌توانیم تعداد موجودی کالاها را در ایمیل سفارش مشتری قید کنیم؟.

قطعه کد زیر، هر محصولی که موجودی آن را رو به کاهش باشد، موجودی آن را فاکتور نمایش داده می‌شود.

ترفند 5: نمایش موجودی کالا در ایمیل سفارش
				
					/**
 * @snippet       Remaining Stock @ WooCommerce New Order Email
 * @post          WooCommerce Customization & Development Tricks - Part 1
 * @developer     themefour
 * @testedwith    WooCommerce 6.1
 * @website       https://themefour.com/
 */
  
 
// ----------
// STEP 1: DECLARE EMAIL ID GLOBAL
 
add_action( 'woocommerce_email_before_order_table', 'themefour_email_id_as_global', 9999, 4 );
 
function themefour_email_id_as_global( $order, $sent_to_admin, $plain_text, $email ){
    $GLOBALS['email_id'] = $email->id;
}
 
// ----------
// STEP 2: IF NEW ORDER EMAIL, ADD REMAINING STOCK QUANTITY
 
add_filter( 'woocommerce_email_order_item_quantity', 'themefour_item_remaining_stock', 9999, 2 );
 
function themefour_item_remaining_stock( $qty_display, $item ) {
    $email_id = $GLOBALS['email_id'];
    if ( empty( $email_id ) ) return;
    if ( 'new_order' !== $email_id ) return;
    $product = $item->get_product();
    if ( is_object( $product ) && $product->managing_stock() ) {
       $qty_display .= ' (' . $product->get_stock_quantity() . ' عدد باقی مانده)';
    }
    return $qty_display;
}
				
			

نمونه تستی که از این قطعه قرار دادیم گویای کار این کد کاربردی برای فروشگاه ساز ووکامرس است.

ترفند ۶: افزودن یک پیشوند و پسوند به موجودی کالا

اگر می‌خواهید به ابتدا و انتهای عدد موجودی کالا در صفحه محصول یک متن دلخواه اضافه کنید.

این قطعه کد برای همین منظور است و می‌توانید متن دلخواه خود را مانند تصویر زیر قرار بدهید.

ترفند 6: افزودن یک پیشوند و پسوند به موجودی کالا
				
					/**
 * @snippet       Stock Quantity Suffix @ WooCommerce Single Product
 * @post          WooCommerce Customization & Development Tricks - Part 1
 * @developer     themefour
 * @testedwith    WooCommerce 6.1
 * @website       https://themefour.com/
 */

add_filter( 'woocommerce_format_stock_quantity', 'themefour_stock_quantity_suffix', 9999, 2 );

function themefour_stock_quantity_suffix( $stock_quantity, $product ) {
    $stock_quantity .= ' عدد<sup>موجودی</sup>';
    return $stock_quantity;
}
				
			

متن به فارسی در کد نوشته شده و کاملاً روند اجرای این قطعه کد قابل تشخیص است.

ترفند ۷: نمایش کالاها براساس موجودی و توقف فروش

این ترفند مورد بسیار کاربردی و مورد علاقه، می‌توانید مدیریت بهتری برای محصولات شما فراهم می‌کند.

با این کد، همۀ محصولات در محیط پیشخوان وردپرس، براساس موجودی آن‌ها مرتب می‌شوند.

مثلاً محصولاتی که ناموجود هستند به انتهای صفحه می‌روند و محصولات موجود بالاتر قرار می‌گیرند.

ترفند 7: نمایش کالاها براساس موجودی و توقف فروش

در افزونه ووکامرس این حالت براساس تاریخ انتشار محصولات است و ممکن است این را دوست نداشته باشید.

کافیست قطعه کد زیر را در فایل فانکشن قالب (functions.php) یا چایلد تم خود قرار دهید و ذخیره کنید.

بعد از این کار به منوی محصولات ووکامرس در پیشخوان ووکامرس خود برگردید تا تغییرات را ببینید.

خواهید دید که کالاها یا محصولات ناموجود به انتهای صفحه یا لیست محصولات شما رفته‌اند.

				
					/**
 * @snippet       Product Sorted By Stock @ WordPress Dashboard
 * @post          WooCommerce Customization & Development Tricks - Part 1
 * @developer     themefour
 * @testedwith    WooCommerce 6.1
 * @website       https://themefour.com/
 */
 
add_action( 'pre_get_posts', 'themefour_sort_products_by_stock_status_admin' );
 
function themefour_sort_products_by_stock_status_admin( $query ){
   global $typenow;
   if ( is_admin() && $query->is_main_query() && $typenow == 'product' ) {
      if ( ! isset( $_GET['orderby'] ) ) {
         $query->set( 'orderby', 'meta_value' );
         $query->set( 'meta_key', '_stock_status' );
         $query->set( 'order', 'ASC' );
      }
   }
}
				
			

پایان بخش اول آموزش ترفندها و توسعه ووکامرس

بخش اول، ترفندهای شخصی سازی و توسعه ووکامرس به پایان رسید. امیدواریم لذت برده باشید.

پاینده و شاد باشید.

این مطلب را با دوستان خود به اشتراک بگذارید

ارسال یک دیدگاه

برای ارسال دیدگاه، نیاز است که را انجام دهید.

دلیل بازپرداخت