کد نمایش تعداد موجودی در ووکامرس برای اینکه بدونیم دقیقا چه تعداد موجودی داریم و یا پیام خاصی رو نمایش بدیم
برای نمایش تعداد موجودی یک کالا در ووکامرس می تونیم از کد زیر استفاده کنیم . یعنی با داشتن آی دی یک محصول و یا در یک لوپ با گرفتن آی دی اون محصول ،تعداد موجودی اون محصول رو نمایش بدیم. همینطور می تونیم تعریف کنیم که اگر موجودی انبار از یک حدی کمتر شد یه پیامک و یا ایمیل برای ما ارسال بشه و یا اینکه برای کاربر یک پیام خاصی نمایش داده بشه مثلا چیزی که در دی جی کالا نمایش داده میشه مثلا 2 عدد از این کالا باقی مونده و بازدید کننده رو تشویق به خرید کرد
$product_id = 1100; $product = wc_get_product($product_id); echo $product->get_stock_quantity();
و یا
$stock = get_post_meta( $post->ID, '_stock', true );
همینطور می تونیم از فانکشن زیر استفاده کنیم ک دقیقا همین کار بالا رو انجام میده :
function wc_get_variable_product_stock_quantity( $output = 'raw', $product_id = 0 ){ global $wpdb, $product; // Get the product ID (can be defined) $product_id = $product_id > 0 ? $product_id : get_the_id(); // Check and get the instance of the WC_Product Object $product = is_a( $product, 'WC_Product' ) ? $product : wc_get_product($product_id); // 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 = '$product_id' AND pm.meta_key = '_stock' AND pm.meta_value IS NOT NULL "); return $stock_quantity; } // Update stock totals for parent product when order status changes to completed... function mysite_woocommerce_order_status_completed( $order_id ) { // For each item in the order, calculate the total stock quantity for all variations and write the total to the parent products's stock quantity $order = wc_get_order( $order_id ); $order_id = $order->get_id(); $log_txt = ''; $items = $order->get_items(); foreach($items as $k=>$val){ $product_id = $val[‘product_id’]; $total_stock_quantity = wc_get_variable_product_stock_quantity( 'raw', $product_id ); $log_txt .= 'Product ID:'.$val['product_id'].', Name: '.$val['name'].', Total Stock: '.$total_stock_quantity.'\n<br>'; // Next: add code to write the stock total to the parent product } } add_action( 'woocommerce_order_status_completed', 'mysite_woocommerce_order_status_completed', 10, 1 );