חיפוש ]

כיצד להגביל ספקי אימייל חינמיים בטפסי HTML וטפסים של CF7

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

במדריך זה נבחן כיצד להפעיל מגבלה זו בטפסי HTML ובתוסף הפופולרי Contact Form 7 (CF7).

למה להגביל ספקי דוא"ל חינמיים?

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

  • מקצועיות: אימיילים עסקיים משקפים לרוב זהות מקצועית המשויכת לחברה.
  • הפחתת ספאם: הגבלת דומיינים של דוא"ל חינמי מפחיתה את הסיכוי לקבלת ספאם.
  • שיפור איכות הנתונים: איסוף נתונים רלוונטיים ואפקטיביים יותר ממשתמשים בעלי עסקים אמיתיים.

הגבלת אימיילים חינמיים בטופס HTML

כדי להגביל ספקי אימייל חינמיים בטופס HTML סטנדרטי, ניתן להשתמש ב-JavaScript כדי לאמת את שדה האימייל.

קוד HTML

<form id="corporate-email-form">
    <label for="email">הזן את האימייל העסקי שלך:</label>
    <input type="email" id="email" name="email" required>
    <button type="submit">שלח</button>
</form>

קוד JavaScript

document.getElementById('corporate-email-form').addEventListener('submit', function (e) {
    const emailField = document.getElementById('email');
    const emailValue = emailField.value;
    const restrictedDomains = ['gmail.com', 'yahoo.com', 'outlook.com', 'hotmail.com'];

    const domain = emailValue.split('@')[1];
    if (restrictedDomains.includes(domain)) {
        e.preventDefault();
        alert('אנא השתמש באימייל עסקי.');
    }
});

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

שימוש ב-Regex לאימות מתקדם

לאימות מתקדם יותר, ניתן להשתמש בתבנית Regex כדי להוציא דומיינים מסוימים בצורה דינמית.

קוד JavaScript עם Regex

const emailRegex = /^[a-zA-Z0-9._%+-]+@(?!gmail\.com$|yahoo\.com$|outlook\.com$|hotmail\.com$)[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;

document.getElementById('corporate-email-form').addEventListener('submit', function (e) {
    const emailField = document.getElementById('email');
    const emailValue = emailField.value;

    if (!emailRegex.test(emailValue)) {
        e.preventDefault();
        alert('אנא השתמש באימייל עסקי.');
    }
});

הסבר: Regex זה מבטיח שדומיין האימייל אינו תואם לרשימת הדומיינים המוגבלים. הוא מבצע אימות דינמי ומונע שליחה אם זוהה אימייל חינמי.

"שימוש ב-Regex לאימות מאפשר דרך חזקה ליישום כללים מותאמים אישית, ומבטיח שהטופס יקבל רק כתובות אימייל נדרשות."

הגבלת אימיילים חינמיים ב-Contact Form 7

אמנם Contact Form 7 אינו תומך ישירות בתכונה pattern, אך ניתן להשתמש בפילטר wpcf7_validate_email לאימות בצד השרת או ב-JavaScript לאימות בצד הלקוח.

שימוש בפילטר wpcf7_validate_email

Contact Form 7 מספק את הפילטר wpcf7_validate_email המאפשר לאמת שדות אימייל בצד השרת במהלך שליחת הטופס. הנה כיצד ניתן להגביל דומיינים חינמיים:

function validate_corporate_email( $result, $tag ) {
    $restricted_domains = ['gmail.com', 'yahoo.com', 'outlook.com', 'hotmail.com'];
    
    // הפקת כתובת האימייל שהוזנה
    $email = isset( $_POST['corporate-email'] ) ? sanitize_email( $_POST['corporate-email'] ) : '';
    $domain = substr( strrchr( $email, '@' ), 1 );
    
    // בדיקה אם הדומיין מוגבל
    if ( in_array( $domain, $restricted_domains ) ) {
        $result->invalidate( $tag, 'אנא השתמש באימייל עסקי.');
    }
    return $result;
}
add_filter( 'wpcf7_validate_email*', 'validate_corporate_email', 20, 2 );

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

קוד JavaScript עבור CF7

document.addEventListener('wpcf7mailsent', function (e) {
    const emailField = document.querySelector('input[name="corporate-email"]');
    const emailValue = emailField.value;
    const restrictedDomains = ['gmail.com', 'yahoo.com', 'outlook.com', 'hotmail.com'];

    const domain = emailValue.split('@')[1];
    if (restrictedDomains.includes(domain)) {
        alert('אנא השתמש באימייל עסקי.');
    }
});

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

"שימוש באימות בצד השרת עם wpcf7_validate_email ובאימות בצד הלקוח עם JavaScript מבטיח אכיפה חזקה של מגבלות על אימיילים חינמיים."

סיכום

הגבלת ספקי אימייל חינמיים בטפסים היא דרך פשוטה אך אפקטיבית לשפר את איכות הפניות שמתקבלות. בין אם אתם משתמשים בטופס HTML פשוט או בתוסף Contact Form 7, השיטות הללו מאפשרות לכם לאכוף שימוש באימיילים עסקיים בצורה חלקה.

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

רועי יוסף
רועי יוסף

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

  • חתול 22 נובמבר 2024, 10:20

    אין צורך להשתמש ב-js לאימות מידע בטופס. Html תומך באימות עם regex בצורה מובנה. זה גם יחסוך שימוש ב-alert ויציג הודעת שגיאה יפה.

    • רועי יוסף 22 נובמבר 2024, 12:39

      אני בהלם שלא גיליתי את זה עד היום. תודה ששיתפת! אעדכן את הפוסט בהתאם…

תגובה חדשה

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