保存前检查值是否存在

时间:2015-09-04 作者:Paulo Moraes

我添加了一个额外的注册字段:

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" value="<?php 
            if ( ! empty( $_POST[\'billing_cpf\'] ) ) esc_attr_e( $_POST[\'billing_cpf\'] ); ?>" />
    </p><?php
}
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\', sanitize_text_field( $_POST[\'billing_cpf\'] ) );
    }
}
add_action( \'woocommerce_created_customer\', \'wooc_save_extra_register_fields\' );
我添加了一个掩码和一些函数来验证信息。此信息以以下代码保存并显示在WordPress仪表板上:

function theme_add_user_cpf_column( $columns ) {
    $columns[\'billing_cpf\'] = __( \'CPF\', \'theme\' );
    return $columns;
}
add_filter( \'manage_users_columns\', \'theme_add_user_cpf_column\' );

function theme_show_user_cpf_data( $value, $column_name, $user_id ) {
    if( \'billing_cpf\' == $column_name ) {
        return get_user_meta( $user_id, \'billing_cpf\', true );
    }
}
add_action( \'manage_users_custom_column\', \'theme_show_user_cpf_data\', 10, 3 );
一切正常,但我需要检查metabilling_cpf 保存前已存在(每个用户的唯一信息)。我该怎么做?

2 个回复
SO网友:Ari

You can use this

$prev_value = get_post_meta($customer_id, "billing_cpf", true);

    if ( isset( $_POST[\'billing_cpf\'] ) && trim($_POST[\'billing_cpf\']) != "" ) {

          if($prev_value  != "") {

                // do something

           } else {

                // do another thing
    
           }
    }
SO网友:Zeshan
$havemeta = get_user_meta($user_id, \'billing_cpf\', false);
if ($havemeta)
     // do something
} else {
    // do something
}

Try This

相关推荐

列出分类法:如果分类法没有POST,就不要列出分类法--取决于定制的POST-META?

这可能很难解释,我不知道是否有解决办法!?我有一个名为“wr\\u event”的自定义帖子类型和一个名为“event\\u type”的分层自定义分类法。自定义帖子类型有一个元框,用于event_date 并且与此帖子类型关联的所有帖子都按以下方式排序event_date. 我在循环中有一个特殊的条件来查询event_date 已经发生了-在这种情况下,它没有显示,但只列在我的档案中。就像你可以使用wp_list_categories() 我编写了一个自定义函数,它以完全相同的方式列出所有分类术语。现在