Созонов Алексей

Веб-разработчик

Woocommerce вариативный товар добавить поле

09.08.2015

Добавляем следующий код в functions.php

<?php
add_action( 'woocommerce_product_after_variable_attributes', 'add_to_variations_metabox', 10, 3 );
add_action( 'woocommerce_save_product_variation', 'save_product_variation', 20, 2 );

/*
 * Добавляем новое поле к каждому варианту
 *
 * @param string $loop
 * @param array $variation_data
 * @return print HTML
 */
function add_to_variations_metabox( $loop, $variation_data, $variation ){

    $custom = get_post_meta( $variation->ID, '_example', true ); ?>

    <div class="variable_custom_field">
        <p class="form-row form-row-first">
            <label><?php echo __( 'Цвет:', 'plugin_textdomain' ); ?></label>
            <input id="example" type="text" size="5" name="variation_example_data[<?php echo $loop; ?>]" value="<?php echo esc_attr( $custom ); ?>" placeholder="Field" />
        </p>
    </div>

<?php

}

/*
 * Сохраняем поля
 *
 * @param int $variation_id
 * @param int $i
 * return void
 */
function save_product_variation( $variation_id, $i ){

    // save custom data
    if ( isset( $_POST['variation_example_data'][$i] ) ) {
        // sanitize data in way that makes sense for your data type
        $custom_data = ( trim( $_POST['variation_example_data'][$i]  ) === '' ) ? '' : sanitize_title( $_POST['variation_example_data'][$i] );
        update_post_meta( $variation_id, '_example', $custom_data );
    }

}
#WordPress‏‎