- סטטוס
- ממתין למפתח
- תוסף/ערכת עיצוב קשורים
- Dokan
- תגיות נושא
- Compatibility
סקירה כללית של התקלה
בעת שימוש ב־Dokan כאשר WPML מוגדר במצב דומיין שונה לכל שפה, בורר השפות עלול ליצור כתובות URL לא תקינות המכילות קידומת דומיין נוספת. לדוגמה, מעבר לצרפתית עלול להוביל לכתובת URL כגון “https://domain.com/fr/https://domain.fr/” במקום הכתובת התקינה “https://domain.fr”.
פתרון עוקף
אנא ודא שברשותך גיבוי מלא של האתר לפני שתמשיך.
- פתח את הקובץ …/wp-content/plugins/dokan-wpml/dokan-wpml.php.
- חפש את שורה 1871.
- החלף את:
public function filter_language_switcher_url( $url, $lang ) { $lang_code = $lang['code'] ?? ''; if ( empty( $url ) || empty( $lang_code ) ) { return $url; } // Get home URL without WPML modifications. $this->disable_url_translation(); $home_url = home_url(); $this->enable_url_translation(); $default_language_code = wpml_get_default_language(); $language_negotiation_type = (int) apply_filters( 'wpml_setting', 1, 'language_negotiation_type' ); $is_parameter_based = ( WPML_LANGUAGE_NEGOTIATION_TYPE_PARAMETER === $language_negotiation_type ); if ( ! $is_parameter_based && $default_language_code !== $lang_code ) { $base_url = trailingslashit( $home_url ) . $lang_code; } else { $base_url = $home_url; }
- בטקסט הבא:
public function filter_language_switcher_url( $url, $lang ) { $lang_code = $lang['code'] ?? ''; if ( empty( $url ) || empty( $lang_code ) ) { return $url; } $language_negotiation_type = (int) apply_filters( 'wpml_setting', 1, 'language_negotiation_type' ); if ( WPML_LANGUAGE_NEGOTIATION_TYPE_DOMAIN === $language_negotiation_type ) { return $url; } $this->disable_url_translation(); $home_url = home_url(); $this->enable_url_translation(); $default_language_code = wpml_get_default_language(); $is_parameter_based = ( WPML_LANGUAGE_NEGOTIATION_TYPE_PARAMETER === $language_negotiation_type ); if ( ! $is_parameter_based && $default_language_code !== $lang_code ) { $base_url = trailingslashit( $home_url ) . $lang_code; } else { $base_url = $home_url; }
- שמור את הקובץ ונקה את המטמון של האתר