Inserire campo personalizzato nelle variazioni / WooCommerce Custom Fields for Variations - https://support.woothemes.com/hc/en-us/articles/203402957-How-to-create-WooCommerce-Custom-Fields-for-Variations
<?php
<?php
//JS to add fields for new variations
add_action('woocommerce_product_after_variable_attributes_js', 'variable_fields_js');
//Save variation fields
add_action('woocommerce_process_product_meta_variable', 'save_variable_fields', 10, 1);
add_action('woocommerce_variation_options', 'variable_fields', 10, 3);
/**
* Create new fields for variations
*
*/
function variable_fields($loop, $variation_data, $variation)
{
?>
<tr>
<td>
<?php
// Number Field
woocommerce_wp_text_input(array(
'id' => '_number_field[' . $loop . ']',
'label' => __('Numero perzzi per confezione', 'woocommerce'),
'desc_tip' => 'true',
'description' => __('Inserisci il numero di pezzi che sono nella confezione.<br>Il costo di ogni singolo elemento verrà calcolato in modo automatico', 'woocommerce'),
'value' => get_post_meta($variation->ID, '_number_field', true),
'custom_attributes' => array(
'step' => 'any',
'min' => '0'
)
));
?>
</td>
</tr>
<?php
}
/**
* Create new fields for new variations
*
*/
function variable_fields_js()
{
?>
<tr>
<td>
<?php
var_dump(get_post_meta(5075, '_number_field'));
// Number Field
woocommerce_wp_text_input(array(
'id' => '_number_field[ + loop + ]',
'label' => __('Numero perzzi per confezione', 'woocommerce'),
'desc_tip' => 'true',
'description' => __('Inserisci il numero di pezzi che sono nella confezione.<br>Il costo di ogni singolo elemento verrà calcolato in modo automatico', 'woocommerce'),
'value' => $variation_data['_number_field'][0],
'custom_attributes' => array(
'step' => 'any',
'min' => '0'
)
));
?>
</td>
</tr>
<?php
}
/**
* Save new fields for variations
*
*/
function save_variable_fields($post_id)
{
if (isset($_POST['variable_sku'])) {
$variable_sku = $_POST['variable_sku'];
$variable_post_id = $_POST['variable_post_id'];
// Number Field
$_number_field = $_POST['_number_field'];
for ($i = 0; $i < sizeof($variable_sku); $i++) {
$variation_id = (int) $variable_post_id[$i];
if (isset($_number_field[$i])) {
update_post_meta($variation_id, '_number_field', stripslashes($_number_field[$i]));
}
}
}
}
?>