הצגת כמות יחידות מוצר פר ואירציה

במאמר זה אסביר כיצד לשנות את אופן הצגת מספר היחידות (כמות) לפי ואירציה.

לאחרונה באחד האתרים שפיתחנו נתקלנו במצב שבו הלקוח מעוניין שנציג למשתמשים את כמות המוצרים לפי הואירציה עצמה ולא לפי סה״כ הכללי, כידוע באופן דיפולטיבי הווקומרס מציג לנו את סה״כ הכללי של כל ואירציות במוצר, למשל אם יש לנו חולצה מדגם ׳טי-שירט׳ בצבעים אדום וכחול, וכל צבע יש 20 יח׳, המערכת תציג לנו שיש 40 יח׳ מהמוצג, ולא תחלק כמות לכל מוצר באופן שבו הגדרנו.

כל מה שעליכם לעשות זה להוסיף action עם פונקציה בקובץ functions.php:

/**
 * @snippet       Display Variations' Name & Stock @ WooCommerce Shop Page
 * @sourcecode    https://studio-m.co.il
 * @author        Matan Mualem Studio M
 * @testedwith    WooCommerce 3.1.2
 */
 
add_action( 'woocommerce_after_shop_loop_item', 'MMW_echo_stock_variations_loop' );
 
function MMW_echo_stock_variations_loop(){
global $product;
    if ($product->product_type == 'variable') {
        foreach ($product->get_available_variations() as $key) {
        $attr_string = '';
            foreach ( $key['attributes'] as $attr_name => $attr_value) {
                                $attr_string[] = $attr_value;
            }
            if ( $key['max_qty'] > 0 ) { echo '
' . implode(', ', $attr_string) . ': ' . $key['max_qty'] .' in stock'; } else { echo '
' . implode(', ', $attr_string) . ': out of stock'; }
            }
    }
}

התוצאה:

כתיבת תגובה