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 '' . $product->get_name() . '
';
$stock_history = get_post_meta( $product_id, '_stock_history', true );
if ( $stock_history ) {
foreach ( $stock_history as $timestamp => $stockvalue ) {
if ( ! $stockvalue ) continue;
echo '' . date( DATE_COOKIE, $timestamp ) . ': ' . $stockvalue . '
';
}
};
echo 'Current Stock: ' . $product->get_stock_quantity() . '
';
}
}
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.