ולידציה לשדה טלפון

תוכן עניינים

ולידציה לשדה טלפון בעמוד תשלום ווקומרס (checkout woocommerce) ובטופס אלמנטור.

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

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

ולדציה למספרים ניידים לטופס אלמנטור ולעמוד תשלום ווקומרס

מחייב הזנת טלפון נייד בן 10 ספרות

הוסיפו את הקוד לקובץ functions.php של תבנית הבת או באמצעות תוסף לניהול סניפטים (Snippets)

				
					// בדיקה בטפסי אלמנטור
add_action( 'elementor_pro/forms/validation/tel', function( $field, $record, $ajax_handler ) {
    $value = $field['value'];

    if ( empty( $value ) || !preg_match( '/^0[2-9][0-9]{8}$/', $value ) ) {
        $ajax_handler->add_error( $field['id'], 'יש להזין מספר טלפון תקין בן 10 ספרות.' );
    }
}, 10, 3 );

// בדיקה בעמוד התשלום של WooCommerce
add_action( 'woocommerce_checkout_process', function() {
    $phone = isset( $_POST['billing_phone'] ) ? sanitize_text_field( $_POST['billing_phone'] ) : '';

    if ( empty( $phone ) || !preg_match( '/^0[2-9][0-9]{8}$/', $phone ) ) {
        wc_add_notice( 'יש להזין מספר טלפון תקין בן 10 ספרות.', 'error' );
    }
});

				
			

תוכלו לשנות את הודעת השגיאה שתופיע כשהמספר לא תקין בשורה 6 לשדה טלפון בטופס אלמנטור ובשורה 15 לשדה טלפון בעמוד תשלום ווקומרס

ולדציה למספרים ניידים ונייחים לטופס אלמנטור ולעמוד תשלום ווקומרס

מחייב הזנת טלפון נייד בן 10 ספרות או טלפון נייח בן 9 ספרות

הוסיפו את הקוד לקובץ functions.php של תבנית הבת או באמצעות תוסף לניהול סניפטים (Snippets)

				
					// ולידציה לטפסי אלמנטור
add_action( 'elementor_pro/forms/validation/tel', function( $field, $record, $ajax_handler ) {
    $value = $field['value'];

    // בדוק אם המספר הוא נייד או נייח תקין
    if ( !preg_match( '/^(05[0-9]{8}|0[2-9][0-9]{7})$/' , $value ) ) {
        $ajax_handler->add_error( $field['id'], 'יש להזין מספר טלפון תקין (נייד או נייח).' );
    }
}, 10, 3 );

// ולידציה לעמוד התשלום של WooCommerce
add_action( 'woocommerce_checkout_process', function() {
    $phone = isset( $_POST['billing_phone'] ) ? sanitize_text_field( $_POST['billing_phone'] ) : '';

    if ( empty( $phone ) ) {
        wc_add_notice( 'יש להזין מספר טלפון.', 'error' );
        return;
    }

    // בדוק אם המספר הוא נייד או נייח תקין
    if ( !preg_match( '/^(05[0-9]{8}|0[2-9][0-9]{7})$/', $phone ) ) {
        wc_add_notice( 'יש להזין מספר טלפון תקין (נייד או נייח).', 'error' );
    }
});

				
			

תוכלו לשנות את הודעת השגיאה שתופיע כשהמספר לא תקין בשורה 7 לשדה טלפון בטופס אלמנטור ובשורה 16 לשדה טלפון בעמוד תשלום ווקומרס

ולדציה למספרים ניידים לעמוד תשלום ווקומרס עם חיווי תוך כדי המילוי

מחייב הזנת טלפון נייד בן 10 ספרות

הוסיפו את הקוד לעמוד התשלום עצמו 

				
					<script>
    document.addEventListener('DOMContentLoaded', function() {
        var phoneField = document.querySelector('#billing_phone');
        if (!phoneField) return;

        var phoneError = document.createElement('span');
        phoneError.style.color = 'red';
        phoneError.style.fontSize = '12px';
        phoneError.style.display = 'none';
        phoneError.textContent = 'יש להזין מספר טלפון תקין בן 10 ספרות.';
        phoneField.parentNode.appendChild(phoneError);

        phoneField.addEventListener('input', function() {
            var phoneValue = phoneField.value;
            var isValid = /^0[2-9][0-9]{8}$/.test(phoneValue);

            if (!isValid) {
                phoneError.style.display = 'block';
            } else {
                phoneError.style.display = 'none';
            }
        });
    });
</script>

				
			

תוכלו לשנות את הודעת השגיאה שתופיע כשהמספר לא תקין בשורה 10

ולדציה למספרים ניידים + נייחים לעמוד תשלום ווקומרס עם חיווי תוך כדי המילוי

מחייב הזנת טלפון נייד בן 10 ספרות או טלפון נייח בן 9 ספרות

הוסיפו את הקוד לעמוד התשלום עצמו 

				
					<script>
    document.addEventListener('DOMContentLoaded', function() {
        var phoneField = document.querySelector('#billing_phone');
        if (!phoneField) return;

        var phoneError = document.createElement('span');
        phoneError.style.color = 'red';
        phoneError.style.fontSize = '12px';
        phoneError.style.display = 'none';
        phoneError.textContent = 'יש להזין מספר טלפון תקין (נייד או נייח).';
        phoneField.parentNode.appendChild(phoneError);

        phoneField.addEventListener('input', function() {
            var phoneValue = phoneField.value;
            var isValid = /^(05[0-9]{8}|0[2-9][0-9]{7})$/.test(phoneValue);

            if (!isValid) {
                phoneError.style.display = 'block';
            } else {
                phoneError.style.display = 'none';
            }
        });
    });
</script>

				
			

תוכלו לשנות את הודעת השגיאה שתופיע כשהמספר לא תקין בשורה 10

כתיבת תגובה

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