强制注册用户成为卖家

时间:2015-05-28 作者:pryde1919

我使用的是dokan multivendor,有谁知道强制所有新注册的供应商启用销售模式的简单脚本吗?注册为卖家时,销售模式自动打开;注册为客户时,销售模式关闭。我想要的是有一个控制脚本,例如,如果register注册为贡献者或编辑器,它将自动使销售模式“打开”。

他们有以下代码:

 add_action(\'gform_post_submission_1\', \'marvel_update_dokan_enable_selling\', 10, 2);
 function marvel_update_dokan_enable_selling() {
     $current_user = wp_get_current_user();
     $current_user_id = $current_user->ID;

     update_user_meta( $current_user_id, \'dokan_enable_selling\', \'yes\' );

 }
但这是重力形式

1 个回复
SO网友:CaldwellYSR

我会user_register 类似于你gform_post_submission_1 之前例如:

add_action( \'user_register\', \'awesome_function_name\', 10, 1 );
function awesome_function_name( $user_id ) {
    // Conditional logic for testing user role
    update_user_meta( $user_id, \'dokan_enable_selling\', \'yes\' );
}
对于你的条件逻辑,如果你试图让每个角色都这样做,除了客户,我通常使用以下函数,我不记得从哪里得到的,所以很遗憾,我不能信任他们。

function check_user_role( $role, $user_id = null ) {
    if( is_numeric( $user_id ) ) {
        $user = get_userdata( $user_id );
    } else {
        $user = wp_get_current_user();
    }

    return in_array( $role, (array)$user->roles );
}
因此,您的上述操作将修改为:

add_action( \'user_register\', \'awesome_function_name\', 10, 1 );
function awesome_function_name( $user_id ) {
    if( !check_user_role( \'customer\', $user_id ) ) {
        update_user_meta( $user_id, \'dokan_enable_selling\', \'yes\' );
    }
}

结束