ברוכים הבאים ל-LEMON!

קהילת LEMON הוקמה במטרה לשתף קטעי קוד (CSS, JS, PHP) ומדריכים שימושיים בין בוני אתרים באלמנטור.
באתר תוכלו למצוא מגוון קטעי קוד שונים שתוכלו לשלב באתרים שלכם. בנוסף, יעלו לאתר מדריכים מתקדמים בנושא אלמנטור, כלים ותוספים שקשורים לאלמנטור, ועוד מגוון מדריכים בנושא בניית אתרים.

הרשמו לניוזלטר

הרשמו עכשיו וקבלו עדכון מיידי בכל פעם שעולה תוכן חדש לאתר.

קבוצת LEMON בפייסבוק

אתם מוזמנים להצטרף!

קוד למשיכת פרטי הזמנה בעמוד סיכום הזמנה

בסיום כל הזמנה הלקוחות שלנו מועברים לעמוד "תודה שקנית", אותו עמוד שמסכם כל הזמנה ותמיד שוכחים לעצב.

אז עד שאלמנטור יאפשרו לנו לעצב את דף סיכום הקניה כמו את כל שאר העמודים שיש בווקומרס, אנחנו משתמשים בתוסף 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סכום ההזמנה
(את ה-Key שנרצה נחליף ב-"_billing_email" שמופיע בשורה 12)

איך משתמשים בפועל באלמנטור

אז אחרי שעברנו את החלק של הוספת קטעי הקוד (ShortCodes) לקובץ funcitons.php שלנו, נראה איך משתמשים בפועל באלמנטור.

נכנס לעורך עמוד התודה שלנו ב-Jet WooBuilder ופשוט נוסיף את ה-ShortCode שלנו בתוך כותרת או בתוך טקטס בצורה הזאת:

זהו, יש לנו את פרטי ההזמנה באלמנטור, לכו וצרו עמודי תודה מעניינים ותמיד תזכרו שזה המקום האחרון שהלקוח רואה כשהוא מסיים את תהליך הרכישה באתר.

העתקת קישור

מוזמנים לשאול בפייסבוק!

4 תגובות

  1. תודה רבה על המדריך!
    האם זה עובד גם בעמוד רגיל לא של JETWOOBUILDER
    ואני נמנעת מלהוסיף קוד בתבניות- הוספתי לSNIPPETS, האם זה גם אמור לעבוד?

    1. היי, בעקרון יש בתחילת הקוד הגבלה לוודא שאכן מדובר על עמוד "תודה שקנית".

      מעבר לזה, אין סיבה שלא יעבוד כל עוד השדה של $order_id מקבל את מספר ההזמנה.

      לגבי אם יעבוד בעמוד שהוא לא JetWooBuilder, כל עוד זה עמוד אישור הזמנה, צפוי לעבוד.

  2. היי, תודה על הקוד (ובכלל על התוכן שאתה משתף בנדיבות..)
    השתמשתי בקוד ושמתי לב שאם רוצים להציג בדף תודה כמה פרמטרים (לדוגמא גם את השם של הלקוח וגם את סכום ההזמנה) – לא מספיק לשנות את הקוד בשורה 12, אלא גם לעדכן את השורטקוד (בשורות 1 ו-14) כדי שזה יעבוד כמו שצריך…
    תודה בכל מקרה, זה סופר שימושי!

    1. בשמחה, כיף לראות שזה עוזר גם אחרי שנה שזה באוויר.
      לגבי התגובה, שורה 1 ו-14 אחראיות על שם הפונקציה ושם הפונקציה שתטען בעת הוספת השורטקוד (בהתאמה).
      שורה 12 אחראית על מה חוזר בפועל מהשורטקוד.

      למשל אם רוצים להחזיר שירשור של שם המשתמש וגם המייל, אפשר להחזיר משהו כזה:

      return get_post_meta( $order_id, '_billing_first_name', true ) . ' – ' . get_post_meta( $order_id, '_billing_email', true );

      זה יחזיר:
      Dor – [email protected]

כתיבת תגובה

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

לשאלות / בקשות / בעיות / כל דבר אחר… צרו איתנו קשר :)

אודות כותב/ת הפוסט
דור שיף
דור שיף, בן 30, מרצה, מתכנת ובונה אתרים עם וורדפרס ומג’נטו בעשור האחרון. בכמה שנים האחרונות התאהבתי קשות באלמנטור והיום עובד בעיקר עם סוכנויות ובוני אתרים כדי לקחת פרוייקטים מורכבים יותר על ידי שימוש בכלים מתקדמים של וורדפרס. בנוסף מעביר קורסים של אלמנטור למתקדמים ואת שאר הזמן שנשאר (אם נשאר) מבזבז על כל דבר שנוסע עם 2 גלגלים.
הרשמו לניוזלטר

הרשמו עכשיו וקבלו עדכון מיידי בכל פעם שעולה תוכן חדש לאתר.