Получите подсчет всех продуктов «На складе» в WooCommerce

У меня есть сайт, на котором продукты считаются торговыми / сделками. Поэтому, когда кто-то берет сделку (покупает продукт), она становится на складе.

Каким будет фрагмент PHP для отображения оставшихся доступных продуктов (в основном на складе)?

ex: Спешите! Доступно только 10 торгов (woocommerce -> продукты)!

Заранее спасибо!

Я попробовал код:

function fp2() { global $wpdb; $stock = get_post_meta( $post->ID, '_stock', true ); echo '<span style="color:#fff;text-align:center;font-size:12px">Remaining Trade:' . $stock; } add_shortcode('fp7', 'fp2'); 

Solutions Collecting From Web of "Получите подсчет всех продуктов «На складе» в WooCommerce"

Вот настраиваемая функция с SQL-запросом, которая вернет счетчик «instock» продуктов:

 function get_instock_products_count(){ global $wpdb; // The SQL query $result = $wpdb->get_col( " SELECT COUNT(p.ID) FROM {$wpdb->prefix}posts as p INNER JOIN {$wpdb->prefix}postmeta as pm ON p.ID = pm.post_id WHERE p.post_type LIKE '%product%' AND p.post_status LIKE 'publish' AND pm.meta_key LIKE '_stock_status' AND pm.meta_value LIKE 'instock' " ); return reset($result); } 

Код идет в файле function.php вашей активной дочерней темы (или темы), а также в любом файле плагина.

Протестировано и работает


Пример использования (в любом php-файле) :

 $count = get_instock_products_count(); $message = sprintf( __( 'Hurry Up! Only %s remaining trades' ), $count ); echo '<div class="woocommerce-message">'.$message.'</div>'; 

будет выглядеть примерно так:

введите описание изображения здесь