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

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

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
קרדיט: לא ידוע
הקוד שייך לך? תעדכנו ואתן לכם קרדיט.
העדכונים שלא תרצו לפספס
הירשמו ותהיו הראשונים לקבל את המדריכים הכי חמים למייל.
ווקומרס
Php
הצגת מוצרים במלאי תחילה בארכיון מוצרים
אלמנטור
Css
הפיכת ווידג'ט תיבת אייקון או תיבת תמונה ללחיצים
אלמנטור
Css
תמונת רקע בתוך טקסט באלמנטור
ווקומרס
Php
שינוי מצב הזמנה בווקומרס להושלם
ווקומרס
Php
ניקוי סל הקניות כשמוסיפים מוצר
חיפוש חופשי
חיפוש חכם ע"י AI (בהרצה)
העדכונים שלא תרצו לפספס
הירשמו ותהיו הראשונים לקבל את המדריכים הכי חמים למייל.
הרשימה מתעדכנת כל הזמן - מומלץ לשמור את הדף במועדפים!
כדי לשמור את האתר לחצו על Ctrl+D במקלדת (במק D+⌘).