it-source

기본값으로 주식을 관리하도록 우커머스 가져오기

criticalcode 2023. 10. 8. 09:58
반응형

기본값으로 주식을 관리하도록 우커머스 가져오기

글로벌 우커머스에서 재고 > 재고 관리 확인란을 설정할 수 있는 후크가 있습니까?

제가 만든 제품은 전부 단품 수량이라서, 꽤 카운터 디알인 것 같습니다.Y는 특히 다른 직원들을 위해 항상 확인하는 것을 기억해야 합니다.

늦은 감이 있지만 후크에 대해 물어보셨기 때문에: 후크, 동작 또는 기능이 특별히 설정되어 있지 않은 것입니다.Manage Stock옵션은 post_meta 값에 불과하므로 post save 기능에 연결하여 자동으로 활성화할 수 있습니다.

add_action('save_post', 'myWoo_savePost', 10, 2);

function myWoo_savePost($postID, $post) {
    if (isset($post->post_type) && $post->post_type == 'product') {

        update_post_meta($post->ID, '_manage_stock', 'yes');
    }
}

재고 수준은 항상 0으로 기본 설정되므로 선을 추가할 수도 있습니다.

update_post_meta($post->ID, '_stock', '1');

...당신의 재고 수량을 1개로 업데이트됩니다.하지만 제품을 저장할 마다 이런 일이 발생한다는 것을 유의해야 합니다.

이것이 WooCommerce의 다른 곳에서 더 많은 재고를 위해 연쇄적인 효과가 있는지는 확실하지 않지만, 당신이 단품을 다루고 있기 때문에 아마도 당신은 괜찮을 것이라고 생각합니다.

업데이트($update 포함):

Wordpress 3.7부터는 에 세 번째 파라미터가 추가되어 새로 생성되는 게시물인지 기존 게시물이 업데이트되는 게시물인지 쉽게 알 수 있습니다.이와 같이 새 게시물을 작성할 때만 위의 기능을 실행할 수 있습니다(이는 거의 틀림없이 원하는 효과입니다).

add_action('save_post_product', 'myWoo_savePost', 10, 3);

function myWoo_savePost($postID, $post, $update) {
    if (!$update) {
        //  $update is false if we're creating a new post
        update_post_meta($post->ID, '_manage_stock', 'yes');
        update_post_meta($post->ID, '_stock', '1');
    }
}

(post-type 특정 저장에 대해 상기시켜준 Dylan에게 감사드립니다)

조금 늦었지만, 다른 필요한 사람들은 어떻게...이 코드의 대부분은 다른 곳에서 찾았지만, 찾은 곳에 대한 링크는 더 이상 없습니다.약간 수정을 해보니 (기능에 추가.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_process_product_meta_simple.

메타를 업데이트하기 전에 먼저 확인해야 합니다._manage_stock는 비어 있습니다. 즉 확인란을 선택하지 않았기 때문에 아직 설정되지 않은 제품에서만 트리거됩니다.

그 다음 manage stock을 전환하고 기본 stock number를 설정합니다.

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');

언급URL : https://stackoverflow.com/questions/15908411/get-woocommerce-to-manage-stock-as-a-default

반응형