Добавление данных настраиваемого поля варианта в экспорт заказа CSV - WooCommerce - PullRequest
0 голосов
/ 30 июня 2018

Я всюду искал ответ и просто продолжаю нажимать блокпост после блокпоста. Я добавил настраиваемые поля вариантов в WooCommerce, используя http://www.remicorson.com/woocommerce-custom-fields-for-variations/ Эти поля правильно сохраняются при обновлении продуктов.

Я установил WooCommerce Customer / Order CSV Export и добавил столбец meta_field, поместив ключ meta_key, найденный в коде ниже.

Скриншот полей

Однако при экспорте файла CSV поля остаются пустыми. Любой имеет опыт работы с отображением данных поля пользовательских вариантов при экспорте данных заказа через CSV.

Ниже приведен используемый код варианта. Любое руководство будет с благодарностью.

/**
 * Create new fields for variations
 *
*/
function variation_settings_fields( $loop, $variation_data, $variation ) {

    // Text Field
    woocommerce_wp_text_input( 
        array( 
            'id'          => 'source_code[' . $variation->ID . ']', 
            'label'       => __( 'Supplier', 'woocommerce' ), 
            'desc_tip'    => 'true',
            'value'       => get_post_meta( $variation->ID, 'source_code', true )
        )
    );
    woocommerce_wp_text_input( 
        array( 
            'id'          => 'source_prod_id[' . $variation->ID . ']', 
            'label'       => __( 'Supplier ID', 'woocommerce' ), 
            'desc_tip'    => 'true',
            'value'       => get_post_meta( $variation->ID, 'source_prod_id', true ),
            'custom_attributes' => array(
                            'step'  => 'any',
                            'min'   => '0'
                        ) 
        )
    );
    woocommerce_wp_text_input( 
        array( 
            'id'          => 'pkg_desc[' . $variation->ID . ']', 
            'label'       => __( 'Package Size', 'woocommerce' ), 
            'desc_tip'    => 'true',
            'value'       => get_post_meta( $variation->ID, 'pkg_desc', true ),
            'custom_attributes' => array(
                            'step'  => 'any',
                            'min'   => '0'
                        ) 
        )
    );          
                woocommerce_wp_text_input( 
        array( 
            'id'          => 'cost[' . $variation->ID . ']', 
            'label'       => __( 'Cost', 'woocommerce' ), 
            'desc_tip'    => 'true',
            'value'       => get_post_meta( $variation->ID, 'cost', true ),
            'custom_attributes' => array(
                            'step'  => 'any',
                            'min'   => '0'
                        ) 
        )
    );
}


// Add Variation Settings
add_action( 'woocommerce_product_after_variable_attributes',  'variation_settings_fields', 10, 3 );

/**
 * Save new fields for variations
 *
*/
function save_variation_settings_fields( $post_id ) {

    // Text Field
    $text_field = $_POST['source_code'][ $post_id ];
    if( ! empty( $text_field ) ) {
        update_post_meta( $post_id, 'source_code', esc_attr( $text_field ) );
    }
    $number_field = $_POST['source_prod_id'][ $post_id ];
    if( ! empty( $number_field ) ) {
        update_post_meta( $post_id, 'source_prod_id', esc_attr( $number_field ) );
    }
    $number_field = $_POST['pkg_desc'][ $post_id ];
    if( ! empty( $number_field ) ) {
        update_post_meta( $post_id, 'pkg_desc', esc_attr( $number_field ) );
    }
    $number_field = $_POST['cost'][ $post_id ];
    if( ! empty( $number_field ) ) {
        update_post_meta( $post_id, 'cost', esc_attr( $number_field ) );
    }

}


// Save Variation Settings
add_action( 'woocommerce_save_product_variation', 'save_variation_settings_fields', 10, 2 );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...