ログイン回数に応じて、wordpress サイトのユーザーに何かを表示しようとしています。user_meta と wp_login フックを使用してこれを達成しようとしました。
add_action( 'wp_login', 'survey_login' );
function survey_login() {
global $current_user;
get_currentuserinfo();
$login_count = get_user_meta($current_user->ID, 'login_count', true);
if($login_count == "") { $login_count = 0; }
update_user_meta($current_user->ID, "login_count", $login_count++ );
if($login_count >= 5) {
$_SESSION['csm_survey_login'] = true;
}
}
これは機能するはずですが、何らかの理由で user_meta キーが追加/更新されるのは約 1/20 の時間だけです。どのように、またはなぜというパターンを見つけることができませんでした。
関数を単純化して単純化しようとしました
add_user_meta($current_user->ID, 'login_count', 1);
または
update_user_meta($current_user->ID, 'login_count', 1);
どちらも同じ問題を抱えています。
なぜ update_user_meta または wp_login がごくわずかな時間しか機能しないのか、誰でも知っていますか?