وردپرس

Multi-step form not properly displaying errors


پاسخ ها: 0

من سعی می‌کنم اعتبار اضافی را به آدرس‌های اینترنتی ارسال شده در فرم ثبت‌نام خود اضافه کنم، و در حالی که کد زیر به درستی از ارسال فرم جلوگیری می‌کند، اگر آدرس‌ها به درستی تنظیم نشده باشند، پیام‌های خطا در کنار فیلدهای مناسب ظاهر نمی‌شوند. مطمئن نیستم که قلاب‌های اشتباهی داشته‌ام، مشکل از راه‌اندازی چند مرحله‌ای/صفحه‌بندی شده یا مشکل دیگری است. برخی از نکات در مورد اینکه چگونه این مورد را برای فیلتر کردن آدرس های اینترنتی من به درستی اصلاح کنم، قدردانی می شود

add_filter( 'forminator_custom_form_submit_errors', 'custom_url_validation', 10, 3 );

function custom_url_validation( $submit_errors, $form_id, $field_data_array ) {
// Target specific form by ID
$target_form_id = 140100;
if ( $form_id != $target_form_id ) {
return $submit_errors;
}

// Define the fields to validate
$platform_url_fields = array( 'url-2', 'url-3', 'url-4', 'url-5' );

foreach ( $platform_url_fields as $field_name ) {
$url="";
foreach ( $field_data_array as $field_data ) {
if ( $field_data['name'] === $field_name ) {
$url = $field_data['value'];
break; // Exit inner loop after finding the URL
}
}

if ( empty( $url ) ) {
continue; // Skip validation for empty URL fields
}

// Generic URL validation
if ( ! filter_var( $url, FILTER_VALIDATE_URL ) ) {
$submit_errors[ $field_name ] = __( 'Please enter a valid URL.', 'your-text-domain' );
continue; // Skip to the next field after validation failure
}

// Platform-specific validation
switch ( $field_name ) {
case 'url-2':
if ( strpos( $url, 'instagram.com' ) === false ) {
$submit_errors[ $field_name ] = __( 'Please enter a valid Instagram URL.', 'your-text-domain' );
}
break;

case 'url-3':
if ( strpos( $url, 'facebook.com' ) === false ) {
$submit_errors[ $field_name ] = __( 'Please enter a valid Facebook URL.', 'your-text-domain' );
}
break;

case 'url-4':
if ( strpos( $url, 'linkedin.com' ) === false ) {
$submit_errors[ $field_name ] = __( 'Please enter a valid LinkedIn URL.', 'your-text-domain' );
}
break;

case 'url-5':
// Add your platform-specific logic for 'url-5'
if ( strpos( $url, 'x.com' ) === false ) {
$submit_errors[ $field_name ] = __( 'Please enter a valid X URL.', 'your-text-domain' );
}
break;

default:
// Optional: Handle unexpected cases
$submit_errors[ $field_name ] = __( 'Unexpected field encountered.', 'your-text-domain' );
break;
}
}

return $submit_errors;
}



این خبر را در ایران وب سازان مرجع وب و فناوری دنبال کنید

مشاهده پاسخ های این مطلب
———————————————
این مطلب از سایت انجمن وردپرس گردآوری شده است و کلیه حقوق مطلق به انجمن وردپرس می باشد در صورت مغایرت و یا بروز مشکل اطلاع دهید تا حذف گردد

منبع: انجمن وردپرس

دکمه بازگشت به بالا