Přidání polí k produktu WooCommerce

Na nově spuštěném webu myairlines.cz, který nabízí opravdu skvělý simulátor Boeing 737, jsem vytvořil spoustu zajímavých funkcionalit, např. generování voucheru a letenek v PDF po dokončení objednávky ve WooCommerce, generování kódů pro rezervační systém, napojení na GoPay a EET, rezervační systém na míru atd.

Jedním z potřebných doplňků bylo přidání custom polí pro produkty ve WooCommerce. To je v novějších verzích WooCommerce opravdu jednoduché:

 

[php]
add_action(‘woocommerce_product_options_general_product_data’, array($this, ‘add_custom_general_fields’));
add_action(‘woocommerce_process_product_meta’, array($this, ‘add_custom_general_fields_save’));

/**
* Display Custom WooCommerce fields
**/
function add_custom_general_fields()
{
global $woocommerce, $post;

echo ‘<div class="options_group">’;

woocommerce_wp_text_input(
array(
‘id’ => ‘_pdf_product_name’,
‘label’ => __(‘Product name on Voucher/Boarding Ticket’, ‘mw’),
‘desc_tip’ => ‘true’,
‘description’ => __(‘Enter the product name, that will display on Voucher/Boarding Ticket.’, ‘mw’)
)
);

// Checkbox
woocommerce_wp_checkbox(
array(
‘id’ => ‘_disable_reservation’,
‘label’ => __("Disable reservations" , ‘mya’ ),
‘description’ => __( ‘Check to disable reservations for this product!’, ‘mya’ )
)
);
woocommerce_wp_checkbox(
array(
‘id’ => ‘_is_gift_card’,
‘label’ => __("Gift card" , ‘mya’ ),
‘description’ => __( ‘Check if this product is gift card!’, ‘mya’ )
)
);

echo ‘</div>’;
}

/**
* Save custom WooCommerce fields
**/
function add_custom_general_fields_save($post_id)
{
$woocommerce_text_field = $_POST[‘_pdf_product_name’];
if (!empty($woocommerce_text_field))
update_post_meta($post_id, ‘_pdf_product_name’, esc_attr($woocommerce_text_field));

// Checkbox
$woocommerce_checkbox = isset( $_POST[‘_disable_reservation’] ) ? ‘yes’ : ‘no’;
update_post_meta( $post_id, ‘_disable_reservation’, $woocommerce_checkbox );

$woocommerce_checkbox = isset( $_POST[‘_is_gift_card’] ) ? ‘yes’ : ‘no’;
update_post_meta( $post_id, ‘_is_gift_card’, $woocommerce_checkbox );
}
[/php]

Výsledek je samozřejmě upgrade-safe a vypadá takto:

Přidat komentář