הוספת שדה תאריך למשלוח בעמוד הצ'קאאוט
PHP
// Load the flatpickr library and styling
function load_flatpickr() {
wp_enqueue_style( 'flatpickr', 'https://cdn.jsdelivr.net/npm/flatpickr/dist/flatpickr.min.css' );
wp_enqueue_script( 'flatpickr', 'https://cdn.jsdelivr.net/npm/flatpickr', array( 'jquery' ), '', true );
}
add_action( 'wp_enqueue_scripts', 'load_flatpickr' );
// Display the datepicker field on the checkout page
add_action( 'woocommerce_after_checkout_billing_form', 'display_extra_fields_after_billing_address' , 10, 1 );
function display_extra_fields_after_billing_address () {
echo '<div class="form-row"><label for="add_delivery_date" class="">' . __("תאריך למשלוח") . ':</label>';
echo '<input type="text" class="add_delivery_date" name="add_delivery_date" placeholder="' . __("בחר תאריך") . '" autocomplete="off" required /></div>';
// Initialize the datepicker
?>
<script>
jQuery(document).ready(function( $ ) {
$(".add_delivery_date").flatpickr({
enableTime: false,
dateFormat: "d/m/Y",
minDate: "today"
});
});
</script>
<?php
}
// Save the datepicker value to the order
add_action( 'woocommerce_checkout_create_order', 'add_order_delivery_date_to_order' , 10, 1);
function add_order_delivery_date_to_order ( $order ) {
if ( isset( $_POST ['add_delivery_date'] ) && '' != $_POST ['add_delivery_date'] ) {
$order->update_meta_data( '_delivery_date', sanitize_text_field( $_POST ['add_delivery_date'] ) );
}
}
// Display the datepicker value on the order received page and in emails
add_filter( 'woocommerce_order_item_name', 'add_delivery_date_to_emails_and_thankyou', 10, 2 );
function add_delivery_date_to_emails_and_thankyou( $item_name, $order ) {
$delivery_date = $order->get_meta( '_delivery_date' );
if ( $delivery_date ) {
$item_name .= '<br><small>' . __("תאריך למשלוח") . ': ' . $delivery_date . '</small>';
}
return $item_name;
}
// Display the datepicker value on the order edit page in the admin
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){
$delivery_date = $order->get_meta( '_delivery_date' );
if ( $delivery_date ) {
echo '<p><strong>'.__("תאריך למשלוח").':</strong> ' . $delivery_date . '</p>';
}
}
* Display field value on custom email notification
*/
add_filter( 'woocommerce_email_order_meta_fields', 'add_delivery_date_to_emails' , 10, 3 );
function add_delivery_date_to_emails ( $fields, $sent_to_admin, $order ) {
if( version_compare( get_option( 'woocommerce_version' ), '3.0.0', ">=" ) ) {
$order_id = $order->get_id();
} else {
$order_id = $order->id;
}
$delivery_date = get_post_meta( $order_id, '_delivery_date', true );
if ( '' != $delivery_date ) {
$fields[ 'Delivery Date' ] = array(
'label' => __( 'Delivery Date', 'add_extra_fields' ),
'value' => $delivery_date,
);
}
return $fields;
}