2013-02-14 3 views
0

У меня есть собственная пользовательская форма регистрации, и это позволяет людям регистрироваться, за исключением одной маленькой проблемы: флажки ничего не делают. Когда я проверяю поля meta_key в базе данных, их не существует. Все остальное в порядке, хотя.Wordpress checkbox в пользовательской форме регистрации

Я пытаюсь добавить «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'); 
Смежные вопросы