복붙노트

[WORDPRESS] 추가 Woocommerce 관리자에 제품의 변형을 사용자 정의 필드를 저장

WORDPRESS

추가 Woocommerce 관리자에 제품의 변형을 사용자 정의 필드를 저장

해결법


  1. 1.마지막 후크 함수에서 당신은 당신의 세번째 기능에 $ 루프 인수에 유사한없는 인수를 가지고있다. 그래서 코드에서 약간 변경했습니다 :

    마지막 후크 함수에서 당신은 당신의 세번째 기능에 $ 루프 인수에 유사한없는 인수를 가지고있다. 그래서 코드에서 약간 변경했습니다 :

    // Add product Barcode custom field
    add_action('woocommerce_product_options_sku','add_barcode_custom_field' );
    function add_barcode_custom_field(){
        woocommerce_wp_text_input( array(
            'id'          => '_barcode',
            'label'       => __('Barcode','woocommerce'),
            'placeholder' => 'Scan Barcode',
            'desc_tip'    => 'true',
            'description' => __('This is the Scan barcode field for this product.','woocommerce')
        ) ); 
    }
    
    // Save product Barcode custom field
    add_action( 'woocommerce_process_product_meta', 'save_barcode_custom_field', 10, 1 );
    function save_barcode_custom_field( $post_id ){
        if( isset($_POST['_barcode']) )
            update_post_meta( $post_id, '_barcode', esc_attr( $_POST['_barcode'] ) );
    }
    
    // Add Variation Barcode custom field
    add_action( 'woocommerce_variation_options_pricing', 'add_barcode_variation_custom_field', 10, 3 );
    function add_barcode_variation_custom_field( $loop, $variation_data, $variation ){
    
        $variation_barcode = get_post_meta($variation->ID,"_barcode", true );
        if( ! $variation_barcode ) $variation_barcode = "";
    
        woocommerce_wp_text_input( array(
            'id'          => '_barcode['.$loop.']',
            'label'       => __('Variation Barcode','woocommerce'),
            'placeholder' => 'Scan Barcode',
            'desc_tip'    => 'true',
            'description' => __('This is the Scan barcode field for this variation.','woocommerce')
            'value'       => get_post_meta($variation->ID,"_barcode", true ),
        ) );
    }
    
    // Save Variation Barcode custom field value
    add_action( 'woocommerce_save_product_variation', 'save_barcode_variation_custom_field', 10, 2 );
    function save_barcode_variation_custom_field( $variation_id, $i ){
        if( isset($_POST['_barcode'][$i]) )
            update_post_meta( $variation_id, '_barcode', sanitize_text_field($_POST['_barcode'][$i]) );
    }
    

    이 코드는 어떤 플러그인 파일도 function.php의 활성 자식 테마 (또는 테마)의 파일이나 간다.

    이 코드는 테스트 WooCommerce 버전 2.6+ 및 3.0 이상 작동됩니다

  2. from https://stackoverflow.com/questions/43700927/add-and-save-admin-product-variations-custom-field-in-woocommerce by cc-by-sa and MIT license