Simple Membershipは、ほとんどのところは日本語化されているのですが、
会員コンテンツを会員でない方が見ようとした時に出るメッセージが、プラグインの更新の度に元に戻ってしまうのをやっとClaudeで解決できました。
このコンテンツを閲覧するにはログインが必要です。お願い Log In.あなたは会員ですか?会員について
このコンテンツを閲覧するにはログインが必要です。ログイン。 会員でない方はこちら
に修正。
子テーマのfunctions.php に下記を追記。
// Simple Membership エラーメッセージ 日本語化
add_filter( 'swpm_translation', function( $translated, $original ) {
$messages = [
// ログイン関連
'Username or Password is incorrect.' => 'ユーザー名またはパスワードが正しくありません。',
'Please enter a username.' => 'ユーザー名を入力してください。',
'Please enter a password.' => 'パスワードを入力してください。',
// アカウント状態
'Your account is not active.' => 'アカウントが有効化されていません。',
'Your membership has expired.' => 'メンバーシップの有効期限が切れています。',
'Account is pending admin approval.' => 'アカウントは管理者の承認待ちです。',
'You are already logged in.' => 'すでにログインしています。',
// パスワードリセット
'Please enter your email address.' => 'メールアドレスを入力してください。',
'No account found with that email address.' => 'そのメールアドレスのアカウントが見つかりません。',
'Password reset email has been sent.' => 'パスワードリセットのメールを送信しました。',
// ログインフォーム
'Log In' => 'ログイン',
'Password' => 'パスワード',
'Username or Email' => 'ユーザー名またはメールアドレス',
'Show password' => 'パスワードを表示',
'Remember Me' => 'ログイン状態を保持する',
'Forgot Password?' => 'パスワードをお忘れですか?',
'Join Us' => '新規会員登録',
// コンテンツ保護メッセージ
'Please' => 'ログインしてください',
'Not a Member?' => '会員でない方はこちら',
'You need to be logged in to view this content. ' => 'このコンテンツを閲覧するにはログインが必要です。',
];
return $messages[ $original ] ?? $translated;
}, 10, 2 );
// get_login_link の文言を直接上書き
add_filter( 'swpm_get_login_link_url', function( $login_url ) {
return $login_url; // URLはそのまま
});
add_filter( 'swpm_not_logged_in_post_msg', function( $msg ) {
$settings = SwpmSettings::get_instance();
$login_url = $settings->get_value( 'login-page-url' );
$joinus_url = $settings->get_value( 'join-us-page-url' );
$hide_join_us = $settings->get_value( 'hide-join-us-link' );
$new_msg = 'このコンテンツを閲覧するにはログインが必要です。';
$new_msg .= '<a class="swpm-login-link" href="' . esc_url( $login_url ) . '">ログイン</a>。';
if ( empty( $hide_join_us ) ) {
$new_msg .= ' 会員でない方は<a href="' . esc_url( $joinus_url ) . '">こちら</a>';
}
return '<div class="swpm-post-not-logged-in-msg">' . $new_msg . '</div>';
});

