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:
Václav Greif se programování pro Wordpress věnuje více než 16 let. Za tu dobu nasbíral mnoho zkušeností s tvorbou pluginů pro Wordpress, úpravou šablon a programováním komplexních funkcionalit. Věnuje se programování pro Wordpress a školení programátorů.