You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在WordPress用户注册表单添加可选营销订阅复选框?

在WordPress注册表单添加营销偏好复选框的实现方法

不用插件也能轻松实现,直接通过WordPress的钩子函数添加即可,以下是具体步骤:

1. 在注册表单插入复选框

通过register_form钩子,在默认注册表单的末尾添加自定义复选框:

add_action('register_form', 'add_marketing_optin_checkbox');
function add_marketing_optin_checkbox() {
    ?>
    <p>
        <label>
            <input type="checkbox" name="marketing_optin" id="marketing_optin" value="1" />
            我希望接收营销活动及产品更新信息
        </label>
    </p>
    <?php
}

2. 保存用户的偏好设置

当用户完成注册时,用user_register钩子把复选框的状态保存到用户元数据里:

add_action('user_register', 'save_marketing_optin_preference');
function save_marketing_optin_preference($user_id) {
    // 判断复选框是否被勾选,保存对应值到用户元数据
    $optin_value = isset($_POST['marketing_optin']) ? '1' : '0';
    update_user_meta($user_id, 'marketing_optin', $optin_value);
}

3. (可选)在用户资料页管理偏好

如果需要让用户或管理员修改这个偏好,可以在用户编辑页面添加对应的选项:

// 在用户个人资料页显示选项
add_action('show_user_profile', 'display_marketing_optin_in_profile');
add_action('edit_user_profile', 'display_marketing_optin_in_profile');
function display_marketing_optin_in_profile($user) {
    $marketing_optin = get_user_meta($user->ID, 'marketing_optin', true);
    ?>
    <h3>营销偏好设置</h3>
    <table class="form-table">
        <tr>
            <th><label for="marketing_optin">接收营销信息</label></th>
            <td>
                <input type="checkbox" name="marketing_optin" id="marketing_optin" value="1" <?php checked($marketing_optin, '1'); ?> />
                <span class="description">勾选表示希望接收营销活动及产品更新信息</span>
            </td>
        </tr>
    </table>
    <?php
}

// 保存资料页的修改
add_action('personal_options_update', 'save_marketing_optin_profile');
add_action('edit_user_profile_update', 'save_marketing_optin_profile');
function save_marketing_optin_profile($user_id) {
    if (!current_user_can('edit_user', $user_id)) return;
    
    $optin_value = isset($_POST['marketing_optin']) ? '1' : '0';
    update_user_meta($user_id, 'marketing_optin', $optin_value);
}

使用方法

把上述代码添加到当前主题的functions.php文件中,或者创建一个简单的自定义插件(新建PHP文件,添加插件头信息后上传到wp-content/plugins目录并激活)。之后你就可以通过get_user_meta($user_id, 'marketing_optin', true)获取用户的偏好状态,用于后续的营销推送逻辑。

内容的提问来源于stack exchange,提问作者Valentina Nese

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 00:10:36