בסיום כל הזמנה הלקוחות שלנו מועברים לעמוד "תודה שקנית", אותו עמוד שמסכם כל הזמנה ותמיד שוכחים לעצב.
אז עד שאלמנטור יאפשרו לנו לעצב את דף סיכום הקניה כמו את כל שאר העמודים שיש בווקומרס, אנחנו משתמשים בתוסף Jet WooBuilder של Crocoblock שמאפשר לנו לערוך את עמוד התודה.
הבעיה היא ש-Jet WooBuilder מאפשר לנו רק להוסיף את האלמנטים הקיימים בעמוד התודה הנוכחי, מה שלא ממש מאפשר לנו לעשות עיצוב יפה אלא משאיר אותנו עם אותן טבלאות נתונים ובלי היכולת ממש לעצב אותן.
בשביל לפתור את הבעיה הזאת, יצרתי קטע קוד פשוט יחסית שמאפשר לנו למשוך את פרטי ההזמנה (עוד מעט נסביר בדיוק איזה ואיך) לאלמנט כותרת או טקסט ולעצב אותם לפי מה שנרצה.
התוצאה היא עמוד תודה מעוצב באלמנטור ו-Jet WooBuilder ובו יש בדיוק את הפרטים שאנחנו רוצים.
אז אחרי כל ההקדמה, בואו נראה בתכל'ס מה עושים.
משיכת מספר הזמנה בעמוד תודה שקנית
נתחיל בלהוסיף את קטע הקוד הבא לקובץ ה-functions.php שלנו בתבנית, למי שעדיין לא יצא להכיר, נמצא תחת Appearence -> Theme Editor ושם נבחר את קובץ functions.php
בעורך הטקסט של קובץ ה-functions.php נוסף את הקטע קוד הבא:
function dorshiff_sc_get_order_id_in_thankyou_page( $atts ) {
if( ! is_wc_endpoint_url( 'order-received' ) )
return; // Exit
global $wp;
$order_id = absint( $wp->query_vars['order-received'] );
if ( empty($order_id) || $order_id == 0 )
return; // Exit;
return $order_id;
}
add_shortcode( 'dorshiff_sc_get_order_id_in_thankyou_page', 'dorshiff_sc_get_order_id_in_thankyou_page');
Code language: PHP (php)
קטע הקוד הזה מאפשר לנו להוסיף את מספר ההזמנה בעמוד ה-"תודה שקנית".
בשביל להציג את המידע, נוסיף לתוך אלמנט כותרת או אלמנט תוכן את השורט קוד הבא:
[dorshiff_sc_get_order_id_in_thankyou_page]
התוצאה:
שימו לב! ניתן להשתמש בו רק בעמוד התודה מהסיבה הפשוטה שרק בעמוד זה המידע נגיש לנו.
משיכת פרטי ההזמנה בעמוד תודה שקנית
במידה ונרצה להוציא מידע אחר מההזמנה שזה עתה בוצעה, כמו למשל כתובת המייל של הלקוח, שם הלקוח ופרטים נוספים, נשתמש בקטע הקוד הבא:
function dorshiff_sc_get_order_customer_email_in_thankyou_page( $atts ) {
if( ! is_wc_endpoint_url( 'order-received' ) )
return; // Exit
global $wp;
$order_id = absint( $wp->query_vars['order-received'] );
if ( empty($order_id) || $order_id == 0 )
return; // Exit;
return get_post_meta( $order_id, '_billing_email', true );
}
add_shortcode( 'dorshiff_sc_get_order_customer_email_in_thankyou_page', 'dorshiff_sc_get_order_customer_email_in_thankyou_page');
Code language: PHP (php)
קטע הקוד הזה מאפשר לנו להוסיף את כתובת המייל של הלקוח בעמוד ה-"תודה שקנית".
בשביל להציג את המידע, נוסיף לתוך אלמנט כותרת או אלמנט תוכן את השורט קוד הבא:
[dorshiff_sc_get_order_customer_email_in_thankyou_page]
בדוגמא הזאת משכנו את כתובת המייל של מבצע ההזמנה אך כמובן שאפשר לשנות מעט את קטע הקוד בשורה 12 ולמשוך כל מידע שנרצה.
טבלה של סוגי המידע שאנחנו יכולים למשוך עם קטע הקוד להלן:
מפתח (Key) | מה מושך מההזמנה |
_payment_method_title | שיטת התשלום |
_billing_first_name | שם פרטי |
_billing_last_name | שם משפחה |
_billing_address_1 | כתובת שורה 1 |
_billing_city | עיר |
_billing_postcode | מיקוד |
_billing_email | כתובת מייל |
_billing_phone | טלפון |
_order_total | סכום ההזמנה |
איך משתמשים בפועל באלמנטור
אז אחרי שעברנו את החלק של הוספת קטעי הקוד (ShortCodes) לקובץ funcitons.php שלנו, נראה איך משתמשים בפועל באלמנטור.
נכנס לעורך עמוד התודה שלנו ב-Jet WooBuilder ופשוט נוסיף את ה-ShortCode שלנו בתוך כותרת או בתוך טקטס בצורה הזאת:
זהו, יש לנו את פרטי ההזמנה באלמנטור, לכו וצרו עמודי תודה מעניינים ותמיד תזכרו שזה המקום האחרון שהלקוח רואה כשהוא מסיים את תהליך הרכישה באתר.
4 תגובות
תודה רבה על המדריך!
האם זה עובד גם בעמוד רגיל לא של JETWOOBUILDER
ואני נמנעת מלהוסיף קוד בתבניות- הוספתי לSNIPPETS, האם זה גם אמור לעבוד?
היי, בעקרון יש בתחילת הקוד הגבלה לוודא שאכן מדובר על עמוד "תודה שקנית".
מעבר לזה, אין סיבה שלא יעבוד כל עוד השדה של $order_id מקבל את מספר ההזמנה.
לגבי אם יעבוד בעמוד שהוא לא JetWooBuilder, כל עוד זה עמוד אישור הזמנה, צפוי לעבוד.
היי, תודה על הקוד (ובכלל על התוכן שאתה משתף בנדיבות..)
השתמשתי בקוד ושמתי לב שאם רוצים להציג בדף תודה כמה פרמטרים (לדוגמא גם את השם של הלקוח וגם את סכום ההזמנה) – לא מספיק לשנות את הקוד בשורה 12, אלא גם לעדכן את השורטקוד (בשורות 1 ו-14) כדי שזה יעבוד כמו שצריך…
תודה בכל מקרה, זה סופר שימושי!
בשמחה, כיף לראות שזה עוזר גם אחרי שנה שזה באוויר.
לגבי התגובה, שורה 1 ו-14 אחראיות על שם הפונקציה ושם הפונקציה שתטען בעת הוספת השורטקוד (בהתאמה).
שורה 12 אחראית על מה חוזר בפועל מהשורטקוד.
למשל אם רוצים להחזיר שירשור של שם המשתמש וגם המייל, אפשר להחזיר משהו כזה:
return get_post_meta( $order_id, '_billing_first_name', true ) . ' – ' . get_post_meta( $order_id, '_billing_email', true );
זה יחזיר:
Dor – [email protected]