2013-02-14 68 views
0

我有我自己的自定義註冊表單,它允許人們註冊一個小問題除外:複選框不做任何事情。當我檢查數據庫中的meta_key字段時,它們不存在。其他一切都還好Wordpress複選框到自定義註冊表格

我試圖讓'comps'和'newsletter'添加到meta_key字段(值爲1),當他們複選框被選中時。我的形式如下:

<form id="form" action="<?php echo site_url('wp-login.php?action=register', 'login_post') ?>" method="post"> 
<fieldset> 
    <label for="user-login">Username<br /> 
    <input type="text" name="user_login" id="user-login" class="input" value="" size="20" tabindex="10" /> 

    <label for="user-email">Email address<br /> 
    <input type="text" name="user_email" id="user-email" class="input" value="" size="25" tabindex="20" /> 

    <label for="comps">Competitions<br /> 
    <input type="checkbox" name="comps" id="comps" class="" value="1" tabindex="30" /></label>       

    <label for="newsletter">Newsletter<br /> 
    <input type="checkbox" name="newsletter" id="newsletter" class="" value="1" tabindex="40" /></label>       

    <input type="hidden" name="redirect_to" value="<?php echo get_settings('home'); ?>/registration-succeeded"/> 

    <input type="submit" name="wp-submit" class="button" value="Register Me!" tabindex="100" /> 

</fieldset> 

有什麼我需要在我的主題的functions.php做的就是這些meta_fields進入數據庫,當用戶註冊(當複選框是當然打勾)?

在此先感謝。

回答

0

我已經完成了。只需要註冊這些用於元數據使用的額外字段:

function at_register_custom_fields($user_id, $password = "", $meta = array()) { 

// custom fields 
$fields = array(
    'comps', 
    'newsletter', 
); 
    // cleans and updates the custom fields 
foreach ($fields as $field) { 
    $value = stripslashes(trim($_POST[$field])) ; 
    if (! empty($value)) { 
    update_user_meta($user_id, $field, $value); 
    } 
    } 
} 
add_action('user_register', 'at_register_custom_fields');