שדה בחירת תאריך בצ'קאאוט

הוספת שדה תאריך למשלוח בעמוד הצ'קאאוט

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;
}

את קוד ה -Php ניתן להטמיע בקובץ ה – function בתבנית הבת או לחלופין להשתמש בתוסף snippet.

הסתבכתם עם הקוד? צריכים התאמה אישית?
תוכלו להיעזר בנותני השירות המומלצים שיעזרו לכם בעבודה

wpcoder - מתכנת
אתרים
wpcoder – מתכנת
המתכנת הכי טוב

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *

ווקומרס
Php
קרדיט: לא ידוע
הקוד שייך לך? תעדכנו ואתן לכם קרדיט.
העדכונים שלא תרצו לפספס
הירשמו ותהיו הראשונים לקבל את המדריכים הכי חמים למייל.
אלמנטור
Js
סגירת פופאפ בלחיצה על כפתור
וורדפרס
Css
עיצוב תוסף הנגישות של enable
ווקומרס
Php
הצגת מוצרים במלאי תחילה בארכיון מוצרים
אלמנטור
Css
הפיכת ווידג'ט תיבת אייקון או תיבת תמונה ללחיצים
אלמנטור
Css
תמונת רקע בתוך טקסט באלמנטור
חיפוש חופשי
העדכונים שלא תרצו לפספס
הירשמו ותהיו הראשונים לקבל את המדריכים הכי חמים למייל.
הרשימה מתעדכנת כל הזמן - מומלץ לשמור את הדף במועדפים!
כדי לשמור את האתר לחצו על Ctrl+D במקלדת (במק D+⌘).