php – WooCommerce自定义Variation Dropdown
发布时间:2020-12-13 16:09:38 所属栏目:PHP教程 来源:网络整理
导读:是否有可能定制woocommerce变化下拉菜单,如果我们有2种颜色和大小的变化,一种颜色“大”的缺货,是否可以添加“缺货”与每个变化下拉菜单. 解决方法 在你的theme / functions.php中试试这个 add_filter( 'woocommerce_variation_option_name','customizing_va
是否有可能定制woocommerce变化下拉菜单,如果我们有2种颜色和大小的变化,一种颜色“大”的缺货,是否可以添加“缺货”与每个变化下拉菜单.
解决方法
在你的theme / functions.php中试试这个
add_filter( 'woocommerce_variation_option_name','customizing_variations_terms_name',10,1 ); function customizing_variations_terms_name( $term_name ){ if(is_admin()) return $term_name; global $product; $second_loop_stoped = false; // Get available product variations $product_variations = $product->get_available_variations(); // Iterating through each available product variation foreach($product_variations as $variation){ $variation_id = $variation['variation_id']; $variation_obj = new WC_Product_Variation( $variation_id ); ## WOOCOMMERCE RETRO COMPATIBILITY ## if ( version_compare( WC_VERSION,'3.0','<' ) ) # BEFORE Version 3 (older) { $stock_status = $variation_obj->stock_status; $stock_qty = intval($variation_obj->stock); // The attributes WC slug key and slug value for this variation $attributes_arr = $variation_obj->get_variation_attributes(); } else # For newest verions: 3.0+ (and Up) { $stock_status = $variation_obj->get_stock_status(); $stock_qty = $variation_obj->get_stock_quantity(); // The attributes taxonomy key and slug value for this variation $attributes_arr = $variation_obj->get_attributes(); } if(count($attributes_arr) != 1) // Works only for 1 attribute set in the product return $term_name; // Get the terms for this attribute foreach( $attributes_arr as $attr_key => $term_slug){ // Get the attribute taxonomy $term_key = str_replace('attribute_','',$attr_key ); // get the corresponding term object $term_obj = get_term_by( 'slug',$term_slug,$term_key ); if( $term_obj->name == $term_name ){ // If the term name matches we stop the loops $second_loop_stoped = true; break; } } if($second_loop_stoped) break; } if( $stock_qty>0 ) return $term_name .= ' - ' . $stock_status . ' ('.$stock_qty.')'; else return $term_name .= ' - ' . $stock_status; } 发表在这里感谢loictheaztec: Show stock status next to each attribute value in WooCommerce variable products (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |