הוספת סימון אריזת מתנה ואזור להוראות בצ'קאאוט של ווקומרס
Thu Nov 11 2021 09:35:44 GMT+0000 (Coordinated Universal Time)
Saved by @Shesek
<?php
/* --- GIFT WRAP FIELDS CHECKOUT AND ADMIN --- */
/**
* Add the fields to the checkout
*/
add_action( 'woocommerce_after_checkout_billing_form', 'my_custom_checkout_field' );
function my_custom_checkout_field( $checkout ) {
echo '<div class="my_gift_wrap_checkout_field"><h2>' . __('Gift wrap', 'woocommerce') .'</h2>';
woocommerce_form_field( 'my_gift_wrap_checkbox', array(
'type' => 'checkbox',
'class' => array('checkbox_field'),
'label' => __('Free gift wrapping? - Yes please!', 'woocommerce'),
'required' => false,
), $checkout->get_value( 'my_gift_wrap_checkbox' ));
woocommerce_form_field( 'my_gift_wrap_field', array(
'type' => 'textarea',
'label' => __('Gift wrap instructions', 'woocommerce'),
'placeholder' => _x('Please enter any gift wrapping instructions. For example if you have multiple items in your order but only want 1 wrapped, or a special message to include.', 'placeholder', 'woocommerce'),
'required' => false,
'class' => array('form-row-wide'),
'clear' => true,
), $checkout->get_value( 'my_gift_wrap_field' ));
echo '</div>';
}
/**
* Update the order meta with fields values
*/
add_action('woocommerce_checkout_update_order_meta', 'my_custom_checkout_field_update_order_meta' );
function my_custom_checkout_field_update_order_meta( $order_id ) {
if ( ! empty( $_POST['my_gift_wrap_checkbox'] ) ) {
update_post_meta( $order_id, 'my_gift_wrap_checkbox', $_POST['my_gift_wrap_checkbox'] );
}
if ( ! empty( $_POST['my_gift_wrap_field'] ) ) {
update_post_meta( $order_id, 'my_gift_wrap_field', $_POST['my_gift_wrap_field'] );
}
}
/**
* Display fields on the order edit page
*/
add_action('woocommerce_admin_order_data_after_billing_address', 'my_custom_checkout_field_display_admin_order_meta', 10, 1 );
function my_custom_checkout_field_display_admin_order_meta($order){
if (get_post_meta( $order->id, 'my_gift_wrap_checkbox', true ) == 1){
echo '<p><strong>'.__('Gift wrap', 'woocommerce').': </strong> ' . __('Yes please!', 'woocommerce'). '</p>';
} else {
echo '<p><strong>'.__('Gift wrap', 'woocommerce').': </strong> ' . __('No thank you', 'woocommerce'). '</p>';
}
echo '<p><strong>'.__('Gift wrap instructions', 'woocommerce').': </strong> ' . get_post_meta( $order->id, 'my_gift_wrap_field', true ) . '</p>';
}
/**
* Add the fields to order emails and thank you page.
**/
add_action( "woocommerce_email_after_order_table", "my_woocommerce_email_after_order_table", 10, 1);
/* add same function to run on after orders table for thank you page */
add_action( 'woocommerce_order_details_after_order_table', "my_woocommerce_email_after_order_table", 10, 1 );
function my_woocommerce_email_after_order_table( $order ) {
$my_gift_wrap_checkbox = get_post_meta( $order->id, "my_gift_wrap_checkbox", true );
$gift_wrap = $my_gift_wrap_checkbox ? __('Yes please!', 'woocommerce') : __('No thank you.', 'woocommerce');
echo '<p><strong>Gift wrap?: </strong>' . $gift_wrap . '</p>';
if ( $my_gift_wrap_checkbox ) {
echo '<p><strong>Gift wrap instructions: </strong>' . get_post_meta( $order->id, "my_gift_wrap_field", true ) . '</p>';
}
}
?>



Comments