WooCommerce: Stok Geçmişini Görüntüle @ Yönetim Paneli

Bu düzgün özelleştirme, manuel stok miktarı düzenlemesi veya müşteri siparişi nedeniyle stok değişikliği yapılmadan önce basit bir ürünün veya değişken ürün varyasyonunun stok miktarından tasarruf sağlar .

 

Ürün başına yüzlerce stok hareketiniz varsa, bunun arka ucunuzu ve/veya veritabanınızı yavaşlatabileceğini, dolayısıyla snippet’in bir tür optimizasyona veya sınırlamaya (“son 10 hareket”) ihtiyaç duyabileceğini lütfen unutmayın.

 

Peki nasıl çalıştığını görelim. 

PHP Snippet'i: Stok Envanter Hareketlerini Görüntüle @ Ürün Düzenleme Sayfası

				
					add_action( 'woocommerce_product_before_set_stock', 'bbloomer_historical_stock_product_parent' );
add_action( 'woocommerce_variation_before_set_stock', 'bbloomer_historical_stock_product_parent' );
 
function bbloomer_historical_stock_product_parent( $product ) {
   $stock_history = get_post_meta( $product->get_id(), '_stock_history', true ) ? get_post_meta( $product->get_id(), '_stock_history', true ) : array();
   $stock_history[time()] = (int)get_post_meta( $product->get_id(), '_stock', true );
   update_post_meta( $product->get_id(), '_stock_history', $stock_history );
}
 
add_action( 'add_meta_boxes', 'bbloomer_product_meta_box' );
 
function bbloomer_product_meta_box() {
    add_meta_box( 'stock_history', 'Stock History', 'bbloomer_display_stock_history', 'product', 'advanced', 'high' );
}
 
function bbloomer_display_stock_history() {
   global $post;
   $product = wc_get_product( $post->ID );
 
   if ( $product->get_type() == 'variable' ) {
        foreach ( $product->get_available_variations() as $key ) {
            $products[] = $key['variation_id'];
      }
   } else $products[] = $post->ID;
    
   foreach ( $products as $product_id ) {
      $product = wc_get_product( $product_id );
      echo '<h3>' . $product->get_name() . '</h3>';
      $stock_history = get_post_meta( $product_id, '_stock_history', true );
      if ( $stock_history ) {
         foreach ( $stock_history as $timestamp => $stockvalue ) {
            if ( ! $stockvalue ) continue;
            echo '<p>' . date( DATE_COOKIE, $timestamp ) . ': <b>' . $stockvalue . '</b></p>';
         }
      }; 
      echo '<p>Current Stock: <b>' . $product->get_stock_quantity() . '</b></p>';   
   }
    
}
				
			

Bu makaleyi beğendiyseniz, lütfen WordPress video eğiticileri için YouTube Kanalımıza abone olun. Bizi Twitter ve Facebook’ta da bulabilirsiniz.

Facebook
Twitter
LinkedIn
Email
WhatsApp

İlgilinizi çekebilecek diğer içerikler

destek

destek

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

3.200'den fazla okuyucu

furkansaglam.com’u yeni içerikler için takip edin!