久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

在 Woocommerce 存檔頁面中顯示所有產品類型的庫存

Display the stock availability for all product types in Woocommerce archive pages(在 Woocommerce 存檔頁面中顯示所有產品類型的庫存可用性)
本文介紹了在 Woocommerce 存檔頁面中顯示所有產品類型的庫存可用性的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我在顯示產品庫存時使用此代碼:

 add_action( 'woocommerce_after_shop_loop_item', 'display_variable_product_stock_quantity', 10 );函數 display_variable_product_stock_quantity(){wc_get_variable_product_stock_quantity('echo_html');}函數 show_stock() {全球$產品;if ( $product->stock ) {//如果管理庫存已啟用如果 ( !$product->managing_stock() && !$product->is_in_stock() )回聲'';}if ( number_format($product->stock,0,'','') > 0 ) {//如果庫存不足echo '<div class="remainingpc" style="text-align:center;"><font color="red">' .number_format($product->stock,0,'','') .' 左 Pcs

';}別的 {echo '<div class="remaining" style="text-align:center;"><font color="red">缺貨</font></div>';}}add_action('woocommerce_after_shop_loop_item','show_stock', 10);

如果產品是變量,我會使用此答案代碼來顯示庫存可用性:
獲取Woocommerce 中可變產品的所有變體的總庫存

如何將這些代碼合并到一個條件函數中?

例如.如果產品是簡單產品,則不會顯示可變產品的其他代碼.

解決方案

以下將處理 woocommerce 存檔產品頁面中所有產品類型的庫存可用性顯示為商店.

要處理除變量之外的其他產品類型的庫存可用性顯示,您可以使用專用函數 wc_get_stock_html() 代替,這將簡化代碼.

add_action( 'woocommerce_after_shop_loop_item', 'wc_loop_get_product_stock_availability_text', 10 );函數 wc_loop_get_product_stock_availability_text() {全球 $wpdb, $product;//對于可變產品if( $product->is_type('變量') ) {//獲取所有產品變體(子項)的庫存數量總和$stock_quantity = $wpdb->get_var("SELECT SUM(pm.meta_value) FROM {$wpdb->prefix}posts as pJOIN {$wpdb->prefix}postmeta as pm ON p.ID = pm.post_idWHERE p.post_type = 'product_variation'AND p.post_status = '發布' AND p.post_parent = '".get_the_id()."'AND pm.meta_key = '_stock' AND pm.meta_value 不為空");如果( $stock_quantity > 0 ){echo '<p class="stock in-stock">'.sprintf( __("%s in stock", "woocommerce"), $stock_quantity ).'</p>';} 別的 {如果 ( is_numeric($stock_quantity) )echo '<p class="庫存缺貨">'.__("缺貨", "woocommerce") .'</p>';別的返回;}}//其他產品類型別的 {回聲 wc_get_stock_html( $product );}}

代碼位于活動子主題(或活動主題)的 function.php 文件中.經測試有效.

I am using this code in showing the stocks of products:

    add_action( 'woocommerce_after_shop_loop_item', 'display_variable_product_stock_quantity', 10 );
function display_variable_product_stock_quantity(){
    wc_get_variable_product_stock_quantity( 'echo_html' );
} 

function show_stock() {
global $product;
if ( $product->stock ) { // if manage stock is enabled 
if ( ! $product->managing_stock() && ! $product->is_in_stock() )
        echo '';
}
if ( number_format($product->stock,0,'','') > 0 ) { // if stock is low
echo '<div class="remainingpc" style="text-align:center;"><font color="red"> ' . number_format($product->stock,0,'','') . ' Pcs Left</font></div>';
} 
else {
echo '<div class="remaining" style="text-align:center;"><font color="red">Out of Stock</font></div>'; 
}
}

add_action('woocommerce_after_shop_loop_item','show_stock', 10);

And if the product is a variable I use this answer code to display the stock availability:
Get the total stock of all variations from a variable product In Woocommerce

How can I merge this codes in a single conditional function?

For example. if the products is a simple product, the other code for variable product will not display.

解決方案

The following will handle the display of the stock availability for all product types in woocommerce archive product pages as shop.

To handle the stock availability display for other product types than variable, you can use the dedicated function wc_get_stock_html() instead, which will simplify the code.

add_action( 'woocommerce_after_shop_loop_item', 'wc_loop_get_product_stock_availability_text', 10 );
function wc_loop_get_product_stock_availability_text() {
    global $wpdb, $product;

    // For variable products
    if( $product->is_type('variable') ) {

        // Get the stock quantity sum of all product variations (children)
        $stock_quantity = $wpdb->get_var("
            SELECT SUM(pm.meta_value) FROM {$wpdb->prefix}posts as p
            JOIN {$wpdb->prefix}postmeta as pm ON p.ID = pm.post_id
            WHERE p.post_type = 'product_variation'
            AND p.post_status = 'publish' AND p.post_parent = '".get_the_id()."'
            AND pm.meta_key = '_stock' AND pm.meta_value IS NOT NULL
        ");

        if ( $stock_quantity > 0 ) {
            echo '<p class="stock in-stock">'. sprintf( __("%s in stock", "woocommerce"), $stock_quantity ).'</p>';
        } else {
            if ( is_numeric($stock_quantity) )
                echo '<p class="stock out-of-stock">' . __("Out of stock", "woocommerce") . '</p>';
            else
                return;
        }
    }
    // Other products types
    else {
        echo wc_get_stock_html( $product );
    }
}

Code goes in function.php file of your active child theme (or active theme). Tested and works.

這篇關于在 Woocommerce 存檔頁面中顯示所有產品類型的庫存可用性的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

Cannot use #39;Object as class name as it is reserved Cake 2.2.x(不能使用 Object 作為類名,因為它是保留的 Cake 2.2.x)
Session is lost after an OAuth redirect(OAuth 重定向后會話丟失)
Pagination Sort in Cakephp 3.x(Cakephp 3.x 中的分頁排序)
CakePHP Shared core for multiple apps(CakePHP 多個應用程序的共享核心)
Login [ Auth-gt;identify() ] always false on CakePHP 3(在 CakePHP 3 上登錄 [ Auth-identify() ] 始終為 false)
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 87 bytes)(致命錯誤:允許的內存大小為 134217728 字節已用盡(嘗試分配 87 字節))
主站蜘蛛池模板: 欧美日韩国产三级 | 久久美国| 国产一区二区在线视频 | 久久亚洲视频 | www.99re5.com| 国产99久久精品一区二区永久免费 | 日本成人免费观看 | 亚洲视频中文字幕 | 亚洲精品一区二区冲田杏梨 | 日韩在线视频免费观看 | 国产精品日日做人人爱 | 国产精品久久久久一区二区三区 | 天堂网av在线 | 久草免费在线 | 国产成人综合在线 | 欧美激情一区二区三区 | 国产成人精品久久二区二区91 | 久久草视频| 欧美人妇做爰xxxⅹ性高电影 | 午夜免费视频 | 紧缚调教一区二区三区视频 | 亚洲乱码一区二区 | 亚洲三级av| 亚洲精品第一国产综合野 | 成人精品在线观看 | 国产精品久久久一区二区三区 | 成人免费一区二区三区牛牛 | 成人影院免费视频 | av香港经典三级级 在线 | 天天干天天色 | 区一区二区三在线观看 | 欧美精品一区二区三区在线播放 | 中文字幕 亚洲一区 | 麻豆久久久久 | aaa级片| 欧美性另类 | 在线观看中文字幕亚洲 | 羞羞的视频在线 | 国产精品一区二区日韩 | 每日更新av| aaaaa毛片 |