如何从数据库中的wp_usermeta表中获取值?

时间:2016-02-10 作者:iperion300

我在注册表中添加自定义字段:

function wooc_extra_register_fields() {
<p class="form-row form-row-first">
<label for="billing_cpf"><?php _e( \'CPF\', \'woocommerce\' ); ?> <span class="required">*</span></label>
<input type="text" class="input-text" name="billing_cpf" id="billing_cpf" placeholder="Somente número" value="<?php if ( ! empty( $_POST[\'billing_cpf\'] ) ) esc_attr_e( $_POST[\'billing_cpf\'] ); ?>" />
</p>
add_action( \'woocommerce_register_form_start\', \'wooc_extra_register_fields\' );
并保存:

function wooc_save_extra_register_fields( $customer_id) {
if ( isset( $_POST[\'billing_cpf\'] ) ) {
    update_user_meta( $customer_id, \'billing_cpf\', $_POST[\'billing_cpf\'] );
}
}
add_action( \'woocommerce_created_customer\', \'wooc_save_extra_register_fields\' );
我看到Registration自定义字段保存到表中wp_usermeta. 我需要检查一下$_POST[\'billing_cpf\'] 此表中已存在并拒绝保存。谢谢你的帮助。

2 个回复
SO网友:majick

您应该使用add_user_meta 而不是update_user_meta:

if (isset($_POST[\'billing_cpf\'])) {
    add_user_meta($customer_id, \'billing_cpf\', $POST[\'billing_cpf\'], true);
}
因为这将only 如果元数据不存在,请添加该元数据-无更新。

(这将阻止此字段可更新-除非通过其他方式。)

注意:通常您可以使用类似的方法在combo中添加和更新字段,以便is 可更新:

if (isset($_POST[\'billing_cpf\'])) {
    if (!add_user_meta($customer_id, \'billing_cpf\', $POST[\'billing_cpf\'], true)) {
        update_user_meta($customer_id, \'billing_cpf\', $POST[\'billing_cpf\']);
    }
}

SO网友:iperion300

我读过关于get_user_meta... 也许它有用。我使用以下代码进行了测试:

<?php 
$user_last = get_user_meta( 51, \'billing_cpf\', true );
echo \'<p>The \'. $key . \' value for user id \' . $user_id . \' is: \' . $user_last . \'</p>\'; 
?>
有人知道如何为所有用户保存所有值?($键=\'billing\\u cpf\')

相关推荐

Bulk Action in wp_list_table

我只想对delete函数执行批量操作。我在谷歌上研究了这么多例子,但还是做不到。如果有人能帮我解决这个问题,我将不胜感激。下面是我的代码。当选择并选择“在下拉列表中删除”并单击“应用”时,不会发生任何情况。public function get_bulk_actions(){ $action = array( "delete" =>"Delete" ); return $action; &