У меня есть мультиязычный членский сайт WordPress, с плагинами s2member и wpml.
Пример для страницы входа на португальском языке:
http://example.com/wp-login?lang=pt-br
Я хочу перенаправлять пользователей после входа на португальскую страницу приветствия, а не на страницу приветствия по умолчанию на английском языке.
Есть ли способ добавить параметр на страницу входа в WordPress? Если так, как я могу получить доступ к этому параметру для моего перенаправления?
Это заняло у меня некоторое время, но я так решил.
У меня есть поле в моей базе данных для языка каждого пользователя.
Я добавил это в functions.php:
add_action( 'wp', 'analyze_form_submit' );
function analyze_form_submit() {
global $current_user;
if (is_page(86)) { // 86 is the welcome page after login in my case
$affil_id = $current_user->user_login;
$query="SELECT lang FROM affil WHERE affil_id=:affil_id";
$stmt = $conn->prepare($query);
$stmt->bindParam(':affil_id', $affil_id, PDO::PARAM_STR);
$stmt->execute();
$row = $stmt->fetch(PDO::FETCH_ASSOC);
$redirect = "http://example.com/welcome?lang=";
switch($row['lang']) {
case "ENG" : $redirect .= "en"; break;
case "HEB": $redirect .= "he"; break;
case "ES" : $redirect .= "es"; break;
case "BR" : $redirect .= "pt-br"; break;
default : $redirect .= "pt-br";
};
wp_redirect( $redirect );
exit;
};
};
Я надеюсь, что это поможет кому-то в будущем.
Других решений пока нет …