i add the following php code with the tool "snippet" to my website. The field which was created by the code is showing but the field will not be visible at the Admin-New-Order-E-Mail.
add_action( 'woocommerce_product_after_variable_attributes', 'custom_add_custom_field', 10, 3 );
function custom_add_custom_field( $loop, $variation_data, $variation ) {
woocommerce_wp_text_input( array(
'id' => 'custom_field[' . $variation->ID . ']',
'label' => __( 'Custom Field', 'woocommerce' ),
'placeholder' => 'Enter custom field value',
'value' => get_post_meta( $variation->ID, 'custom_field', true ),
'wrapper_class' => 'form-row form-row-full',
) );
}
add_action( 'woocommerce_save_product_variation', 'custom_save_custom_field', 10, 2 );
function custom_save_custom_field( $variation_id, $i ) {
if ( isset( $_POST['custom_field'][ $variation_id ] ) ) {
$custom_field = sanitize_text_field( $_POST['custom_field'][ $variation_id ] );
update_post_meta( $variation_id, 'custom_field', $custom_field );
}
}
add_filter( 'woocommerce_email_variation_attributes', 'custom_add_custom_field_to_email', 10, 3 );
function custom_add_custom_field_to_email( $variation_attributes, $item, $order ) {
$variation_id = $item->get_variation_id();
if ( $variation_id ) {
$custom_field = get_post_meta( $variation_id, 'custom_field', true );
if ( ! empty( $custom_field ) ) {
$variation_attributes .= sprintf( __( 'Custom Field: %s', 'woocommerce' ), $custom_field );
}
}
return $variation_attributes;
}