MailChimp הינו אחד מכלי השיווק וניהול רשימות התפוצה מבין הנפוצים בעולם. המאמר הבא יסביר איך לחבר טופס Contact Form 7 ל-MailChimp ע״י מספר שלבים וקצת התלכלכות בקוד.

לפני תחילת המדריך יש לוודא שפתחתם חשבון ב-MailChimp וש-Contact Form 7 יהיה מותקן באתר שלכם.

שלב 1 – יצירת טופס ב-Contact Form 7

נתחיל ביצירת טופס חדש ב-Contact Form 7, נעשה זאת ע״י כניסה לפאנל הניהול של האתר, בחירה ב-״צור קשר״ בתפריט ובעמוד שיפתח לחיצה על ״הוספה״.

בעמוד החדש שיפתח, ניתן קוד שם לטופס, ונכניס את הקוד הבא:

<label for="newsletter_mail">מייל</label>[email* newsletter_mail id:newsletter_mail akismet:author_email placeholder "מה המייל שלך?"]

[submit id:newsletter_submit "הרשמה"]

לאחר מכן נלחץ על שמור.

שלב 2 – הטמעת הטופס באתר

השלב הבא הוא להטמיע את הטופס באתר, נעשה זאת ע״י העתקה של ה-Shortcode של הטופס ונדביק אותו באחד העמודים בוא נרצה להציג את הטופס.

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

שלב 3 – יצירת מפתח API

בשלב זה נתחבר לחשבון שלנו ב-MailChimp, נלחץ בצד ימין למעלה על התמונה שלנו ונבחר ב-Account. לאחר מכן נלחץ על Extras ונבחר ב-API Keys.

בעמוד שנפתח, נגלול מעט מטה ונלחץ על Create A Key ולאחר טעינת העמוד נעתיק את המחרוזת שתוצג לנו בתוך השדה.

שלב 4 – קבלת מזהה רשימה

על מנת לשייך את המיילים שנרשמו לרשימת תפוצה עלינו לחלץ את מזהה הרשימה. נעשה זאת ע״י לחיצה על קישור Lists בתפריט העליון. כעת נלחץ על הרשימה הרלוונטית או שניצור רשימה חדשה. כעת נלחץ על Settings ונבחר ב-List name and defaults.

בעמוד שיפתח נעתיק את הערך שכתוב באדום תחת הכותרת List ID.

שלב 5 – הטמעת קוד ההתממשקות

כעת נפתח את קובץ functions.php של התבנית שלנו ונדביק את הקוד הבא:

/**
 * Enable Integration between Contact Form 7 and MailChimp.
 *
 * @param mixed $cf7 the submitted form data.
 *
 * @return boolean was the action successful?
 */
function send_leads_to_mailchimp( $cf7 ) {

  // Integration settings.
  $form_id = 0;
  $list_id = 'XXXXXXX';
  $api_key = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-us2';
  
  if ( $form_id !== $cf7->id() ) {
    return false;
  }

  $submit = \WPCF7_Submission::get_instance();
  $data   = $submit->get_posted_data();

  if ( ! empty( $data ) ) {

    $key_parts = explode( '-', $api_key );
    $user_hash = md5( strtolower( $data['newsletter_mail'] ) );

    $url = sprintf( 'https://%s.api.mailchimp.com/3.0/lists/%s/members/%s', $key_parts[1], $list_id, $user_hash );

    $response = wp_remote_request( $url, [
      'method'  => 'put',
      'headers' => [
        'Authorization' => "Basic {$api_key}",
      ],
      'body'    => json_encode( [
        'email_address' => $data['newsletter_mail'],
        'status'        => 'subscribed',
        'merge_fields'  => [],
      ] ),
    ] );

    return ( ! is_wp_error( $response ) );

  }

  return false;

}

add_action( 'wpcf7_before_send_mail', 'send_leads_to_mailchimp' );

השורות הכי חשובות פה הינם שורות 11-13, בשורות אלו אנחנו נגדיר את ההתממשקות שלנו ל-MailChimp.

נחליף את הערכים של המשתנים לפי ההסבר הבא:

כעת נעשה בדיקה קצרה ע״י מילוי בטופס וכניסה לרשימת תפוצה ב-MailChimp ובדיקה האם המייל שהוכנס בטופס מופיע בטבלה.

שלב 6 – ביטול שליחה מייל (אופציונלי)

מכיוון שהמיילים נכנסים ישירות ל-MailChimp, אין צורך ממשי בשליחת המייל עם פרטי הטופס, לכן נוסיף את הקוד הבא לקובץ functions.php אחרי הקוד של שלב 5.

/**
 * Skip sending email on newsletter subscription.
 *
 * @param boolean $to_skip skip email.
 * @param mixed   $cf7     contact form 7 object.
 *
 * @return boolean
 */
function skip_newsletter_mail( $to_skip, $cf7 ) {

  // Integration settings.
  $form_id = 0;

  if ( $form_id === $cf7->id() ) {
    return true;
  }

  return $to_skip;

}

add_filter( 'wpcf7_skip_mail', 'skip_newsletter_mail', 10, 2 );

כאמור, גם כאן נחליף את הערך של $form_id במזהה הטופס שלנו משלב 2.

סיכום

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

    כתיבת תגובה

    1. טל יערי

      מאמר מצויין!
      עוזר המון.
      ממליץ מאוד!

      הגב
      1. דור צוברי

        תודה רבה טל!
        שמח לשמוע שהמאמר עזר לך!

        מוזמן לשתף בין חברים 🙂

    2. לולה

      קצר, לעניין ומאוד ברור!
      תודה!

      הגב
      1. דור צוברי

        היי לולה,
        תודה רבה על התגובה! שמח לשמוע שהמדריך היה ברור וקליל 🙂

    3. אורלי

      מאמר נהדר, עזר לי מאוד

      הגב
      1. דור צוברי

        תודה רבה אורלי!

    4. ניב דמינוביץ׳

      ווואיייי!!!
      תודה רבה אני כבר כמה שעות מנסה לחבר את
      gravity form ל mailchimp ומשהו לא עובד לי.

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

      האם עתידים לצאת עוד מדריכים כאלה?

      הגב
      1. דור צוברי

        היי ניב,
        בהחלט יצאו עוד מאמרים בסגנון הזה בהמשך!

        ממליץ לך להירשם לניוזטר ולהתעדכן 🙂

      2. ניב דמינוביץ׳

        נרשמתי
        מחכה בקוצר רוח

    5. טל

      מאמר מצויין ! חוסך פלאגינים וקוד מיותר

      הגב
      1. דור צוברי

        תודה רבה טל!

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

    שתפו