Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将Wordpress复选框转换为自定义注册表_Wordpress_Checkbox_Registration - Fatal编程技术网

将Wordpress复选框转换为自定义注册表

将Wordpress复选框转换为自定义注册表,wordpress,checkbox,registration,Wordpress,Checkbox,Registration,我有自己的自定义登记表,它允许人们登记,除了一个小问题:复选框什么都不做。当我检查数据库中的meta_键字段时,它们不存在。不过其他一切都还可以 我正在尝试将“comps”和“newsletter”添加到meta_键字段(值为1),当它们选中复选框时。我的表单如下所示: <form id="form" action="<?php echo site_url('wp-login.php?action=register', 'login_post') ?>" method="pos

我有自己的自定义登记表,它允许人们登记,除了一个小问题:复选框什么都不做。当我检查数据库中的meta_键字段时,它们不存在。不过其他一切都还可以

我正在尝试将“comps”和“newsletter”添加到meta_键字段(值为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>

我已经解决了。只需注册这些额外字段以供元数据使用:

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' );