woocommerce で [Inventory] > [Manage Stock] チェックボックスをグローバルに設定できるようにするフックはありますか?
私の製品はすべて単一のアイテムの数量であるため、特に他の従業員にとって、常にチェックすることを忘れないようにする必要があるのはかなりカウンタードライのようです.
woocommerce で [Inventory] > [Manage Stock] チェックボックスをグローバルに設定できるようにするフックはありますか?
私の製品はすべて単一のアイテムの数量であるため、特に他の従業員にとって、常にチェックすることを忘れないようにする必要があるのはかなりカウンタードライのようです.
少し遅れましたが、これを行う必要がある他の人のための方法は次のとおりです...このコードのほとんどは別の場所で見つけましたが、見つけた場所へのリンクはもうありません。それを少し微調整して、これが私が最終的に得たものです(functions.phpに追加):
add_action( 'admin_enqueue_scripts', 'wc_default_variation_stock_quantity' );
function wc_default_variation_stock_quantity() {
global $pagenow, $woocommerce;
$default_stock_quantity = 1;
$screen = get_current_screen();
if ( ( $pagenow == 'post-new.php' || $pagenow == 'post.php' || $pagenow == 'edit.php' ) && $screen->post_type == 'product' ) {
?>
<!-- uncomment this if jquery if it hasn't been included
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
-->
<script type="text/javascript">
jQuery(document).ready(function(){
if ( !jQuery( '#_manage_stock' ).attr('checked') ) {
jQuery( '#_manage_stock' ).attr('checked', 'checked');
}
if ( '' === jQuery( '#_stock' ).val() ) {
jQuery( '#_stock' ).val(<?php echo $default_stock_quantity; ?>);
}
});
</script>
<?php
}
}
Woocommerce には、製品を保存するための独自のフックが追加されました。シンプルな製品の場合はwoocommerce_process_product_meta_simple
.
メタを更新する前に、まずチェック_manage_stock
ボックスが空であること、つまりチェックボックスがチェックされていないことを確認する必要があります。これにより、まだ設定されていない製品でのみトリガーされます。
次に、在庫管理を切り替えて、デフォルトの在庫数を設定します。
function manage_stock_default( $post_id ) {
if (empty($_POST['_manage_stock'])) {
update_post_meta($post_id, '_manage_stock', 'yes');
update_post_meta($post_id, '_stock', '1');
}
}
add_action( 'woocommerce_process_product_meta_simple', 'manage_stock_default');