我在我的网站上为用户提供了一些元字段,但我无法访问$_POST
反更新后的变量。奇怪的是,在更新之后,如果我对条件进行注释,那么meta将使用$_POST
内容,但我无法使用条件句使用$_POST
因为我有个错误,
未定义索引:gdpr\\u data\\u approvement\\u字段
我可以看到所有$_POST
数据输入user-edit.php
, 但由于表单位于url中/wp-admin/user-edit.php?user_id=13&wp_http_referer=%2Fwp%2Fwp-admin%2Fusers.php
我无法访问它。
代码如下:
<?php
function privacity_user_profile_fields() {
global $user_id;
if ($_POST[\'gdpr_data_consent_field\'] == \'true\' ){
update_user_meta( $user_id, \'gdpr_user_register_consent\', \'true\' );
echo \'IS TRUE\';
} else {
update_user_meta( $user_id, \'gdpr_user_register_consent\', \'false\' );
echo \'IS FALSE\';
}
$data_consent = get_user_meta($user_id, \'gdpr_user_register_consent\', true);
$data_consent_text = \'He leído y entendido el cómo se tratarán los datos introducidos durante el registro en esta web.\';
?>
<h2 id="privacity">Opciones de privacidad</h2>
<p>
<input type="checkbox" name="gdpr_data_consent_field" id="data-consent-field" value="true" <?php echo ($data_consent == \'true\') ? \'checked\' : \'\' ?> />
<label for="data-consent-field"><?php echo $data_consent_text; ?></label>
</p>
<?php
}
add_action(\'edit_user_profile\', \'privacity_user_profile_fields\');
add_action( \'edit_user_profile_update\', \'privacity_user_profile_fields\' );
?>
我睡不着!!我做错了什么?非常感谢
SO网友:Ferran
我发现了我的错误。我挂接了两次相同的代码,一个在“edit\\u user\\u profile”中,另一个在“edit\\u user\\u profile\\u update”中。我已将显示代码与反更新代码分离,现在它的工作方式就像必须:
<?php
function privacity_user_profile_fields() {
global $user_id;
$data_consent = get_user_meta($user_id, \'gdpr_user_register_consent\', true);
$data_consent_text = \'He leído y entendido el cómo se tratarán los datos
introducidos durante el registro en esta web.\';
?>
<h2 id="privacity">Opciones de privacidad</h2>
<p>
<input type="checkbox" name="gdpr_data_consent_field" id="data-consent-field" value="true" <?php echo ($data_consent == \'true\') ? \'checked\' : \'\' ?> />
<label for="data-consent-field"><?php echo $data_consent_text; ?></label>
</p>
<?php
}
add_action(\'edit_user_profile\', \'privacity_user_profile_fields\');
function privacity_user_profile_update() {
global $user_id;
if ($_POST[\'gdpr_data_consent_field\'] == \'true\' ){
update_user_meta( $user_id, \'gdpr_user_register_consent\', \'true\' );
} else {
update_user_meta( $user_id, \'gdpr_user_register_consent\', \'false\' );
}
}
add_action( \'edit_user_profile_update\', \'privacity_user_profile_update\' );
?>