WPML
الحالة
في انتظار المطور
الإضافة/القالب ذو الصلة
Ultimate Membership Pro
وسوم الموضوع
Compatibility

نظرة عامة على المشكلة

عند استخدام Ultimate Membership Pro مع WPML، قد تواجه مشكلة حيث تكون قيم مربعات الاختيار المستخدمة في الملفات الشخصية للأعضاء ومرشحات الدليل غير قابلة للترجمة. ويمنع هذا ظهور التسميات المترجمة بشكل صحيح في صفحات الدليل أو النماذج المترجمة.

حل بديل مؤقت

يُرجى التأكد من وجود نسخة احتياطية كاملة لموقعك قبل المتابعة.

1- حذف الترجمات غير الصحيحة

  • اذهب إلى WPML > ترجمة النصوص
  • صفِّ حسب الترجمة المكتملة
  • ابحث عن السلاسل ضمن اسم الحقل [ihc_user_fields]
  • حدّد كل هذه السلاسل واحذفها – فهي سلاسل قيم ولا ينبغي ترجمتها.

2- تعديل قالب مرشِّح الواجهة الأمامية

  • افتح: wp-content/plugins/indeed-membership-pro/public/views/listing_users-filter.php
  • ابحث عن: السطر 167 تحت الحالة ‘checkbox’
  • استبدل:

<?php
foreach ($field['values'] as $v){
    if (is_array($get_value)){
        $checked = (in_array($v, $get_value)) ? 'checked' : '';
    } else {
        $checked = ($v==$get_value) ? 'checked' : '';
    }
    ?>
    <div class="iump-form-checkbox">
        <input type="checkbox" name="<?php echo esc_attr($field['name']);?>[]" value="<?php echo esc_attr(ihc_correct_text($v));?>" <?php echo esc_attr($checked);?> />
        <?php echo esc_html(ihc_correct_text($v));?>
    </div>
    <?php
}
?>

بـ:

<?php
foreach ($field['values'] as $v){
    if (is_array($get_value)){
        $checked = (in_array($v, $get_value)) ? 'checked' : '';
    } else {
        $checked = ($v==$get_value) ? 'checked' : '';
    }

    // WPML: Separate value and label
    $wpml_original_value = ihc_correct_text($v);
    $wpml_string_name = 'checkbox_option_' . $field['name']; 
    do_action( 'wpml_register_single_string', 'ihc', $wpml_string_name . '_' . sanitize_title($v), $wpml_original_value );
    $wpml_translated_label = apply_filters( 'wpml_translate_single_string', $wpml_original_value, 'ihc', $wpml_string_name . '_' . sanitize_title($v) );
?>
    <div class="iump-form-checkbox">
        <input type="checkbox" name="<?php echo esc_attr($field['name']);?>[]" value="<?php echo esc_attr(ihc_correct_text($v));?>" <?php echo esc_attr($checked);?> />
        <?php echo esc_html($wpml_translated_label); ?>
    </div>
<?php
}
?>

3- إصلاح تسميات مربعات الاختيار في نموذج التسجيل

  • افتح: wp-content/plugins/indeed-membership-pro/classes/IndeedForms.php
  • ابحث عن: دالة مربع الاختيار (حوالي السطر 129)
  • استبدل:

$output .= ihc_correct_text( $v );
بـ:
$output .= __( ihc_correct_text( $v ), 'ihc' );</ul>

4- تشغيل تسجيل السلاسل

  • زُر صفحة الدليل في الواجهة الأمامية لتحميل السلاسل الجديدة.
  • اذهب إلى WPML > ترجمة النصوص وترجم فقط السلاسل المسجلة حديثاً ضمن النطاق “ihc” (التي تحمل اسماً مثل checkbox_option_name).

جميع المشاكل المعروفة →