У меня есть сайт, на котором продукты считаются торговыми / сделками. Поэтому, когда кто-то берет сделку (покупает продукт), она становится на складе.
Каким будет фрагмент 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');
Вот настраиваемая функция с 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>';
будет выглядеть примерно так: