Php Woocommerce注册检查转介代码是否有效

Php Woocommerce注册检查转介代码是否有效,php,jquery,wordpress,woocommerce,advanced-custom-fields,Php,Jquery,Wordpress,Woocommerce,Advanced Custom Fields,我想在我的woocommerce登记表中添加一个检查,以检查是否存在推荐代码,该代码在后端设置为自定义字段(中继器)。它当前使用高级自定义字段进行设置,并在“选项”页面上进行设置。它应该检查代码是否在转发器字段中,否则将拒绝注册。然后需要将代码添加到用户并显示在用户后端 我曾试图操纵注册时的条款和条件代码,但没有取得任何进展。谢谢 这是我的ACF代码,用于获取有效代码进行验证 <?php // check if the repeater field has rows of data if

我想在我的woocommerce登记表中添加一个检查,以检查是否存在推荐代码,该代码在后端设置为自定义字段(中继器)。它当前使用高级自定义字段进行设置,并在“选项”页面上进行设置。它应该检查代码是否在转发器字段中,否则将拒绝注册。然后需要将代码添加到用户并显示在用户后端

我曾试图操纵注册时的条款和条件代码,但没有取得任何进展。谢谢

这是我的ACF代码,用于获取有效代码进行验证

<?php

// check if the repeater field has rows of data
if( have_rows('referralcode', 'option') ):

    // loop through the rows of data
    while ( have_rows('referralcode', 'option') ) : the_row();

        // display a sub field value
        the_sub_field('referralvalue', 'option');

    endwhile;

else :
    // no rows found
endif;

?>

以下是方法:

1) 添加转介注册字段

add_action( 'woocommerce_register_form', 'add_referral_registration_field', 20 );
function add_referral_registration_field() {
    ?>
    <p class="form-row form-row-wide">
        <label for="reg_referralcode"><?php _e( 'Referral code', 'woocommerce' ); ?><span class="required"> *</span></label>
        <input type="text" class="input-text" name="referralcode" id="reg_referralcode" value="<?php if ( ! empty( $_POST['referralcode'] ) ) esc_attr_e( $_POST['referralcode'] ); ?>" />
    </p>
    <?php
}
代码进入活动子主题(或活动主题)的function.php文件。测试和工作


如果您希望在编辑用户帐户表单中显示字段(并更新字段):

1) 编辑转介注册字段:

add_action( 'woocommerce_edit_account_form', 'edit_referral_registration_field', 20 );
function edit_referral_registration_field() {
    $user = wp_get_current_user();
    ?>
        <p class="woocommerce-form-row woocommerce-form-row--wide form-row form-row-wide">
        <label for="referralcode"><?php _e( 'Referral code', 'woocommerce' ); ?>
        <input type="text" class="woocommerce-Input woocommerce-Input--text input-text" name="referralcode" id="referralcode" value="<?php echo esc_attr( $user->referralcode ); ?>" />
    </p>
    <?php
}
add_action( 'woocommerce_save_account_details', 'save_referral_registration_field', 20, 1 );
function save_referral_registration_field( $user_id ) {

    if( isset( $_POST['referralcode'] ) )
        update_user_meta( $user_id, 'referralcode', sanitize_text_field( $_POST['referralcode'] ) );
}
代码进入活动子主题(或活动主题)的function.php文件。测试和工作


我添加了一个帐户详细信息编辑表单…回答得很好!但是,从用户的帐户详细信息页面(/my Account/edit Account/)更新转介注册字段的代码似乎不起作用。更新转介代码并按下保存更改按钮后,获取“帐户详细信息已成功更改”。请注意,转介代码与用户在注册时最初输入的代码相同。有什么想法吗?我知道了。函数名不匹配<代码>保存\u收藏\u颜色\u帐户\u详细信息应为
保存\u推荐\u注册\u字段
@SridharKatakam是的,很抱歉有点小错误(已更新)。
add_action( 'woocommerce_edit_account_form', 'edit_referral_registration_field', 20 );
function edit_referral_registration_field() {
    $user = wp_get_current_user();
    ?>
        <p class="woocommerce-form-row woocommerce-form-row--wide form-row form-row-wide">
        <label for="referralcode"><?php _e( 'Referral code', 'woocommerce' ); ?>
        <input type="text" class="woocommerce-Input woocommerce-Input--text input-text" name="referralcode" id="referralcode" value="<?php echo esc_attr( $user->referralcode ); ?>" />
    </p>
    <?php
}
add_action( 'woocommerce_save_account_details', 'save_referral_registration_field', 20, 1 );
function save_referral_registration_field( $user_id ) {

    if( isset( $_POST['referralcode'] ) )
        update_user_meta( $user_id, 'referralcode', sanitize_text_field( $_POST['referralcode'] ) );
}