redbitcz / simpleshop-wp-plugin

SimpleShop Wordpress Plugin
https://www.simpleshop.cz/category/wordpress-plugin/
Other
2 stars 1 forks source link

Jak změnit roli uživatele registrovaného po zakoupení členství #22

Closed vlastimilott closed 5 years ago

vlastimilott commented 5 years ago

Nový uživatel se zakládá bez explicitního určení role, předpokládám tedy, že se bere výchozí nastavení ve WordPressu. Kvůli jiné návaznosti v našem systému potřebujeme roli uživatele změnit, resp. přidat druhou. Např, kromě Návštěvník ještě Uživatel bez reklam. Existuje nyní nějaká možnost, jak to udělat? Nic jsem nenašel.

Pokud ne, můžeme do objektu Rest, metody create_item přidat hook, který umožní roli nastavit?

$roles = get_option('default_role');
$userdata  = [
 'user_login' => $email,
 'user_email' => $email,
 'roles' => apply_filters('ssc_default_user_role', $roles),
 'first_name' => sanitize_text_field( $request->get_param( 'firstname' ) ),
 'last_name'  => sanitize_text_field( $request->get_param( 'lastname' ) ),
 'user_pass'  => $_password,
];

Díky za reakci

vaclavgreif commented 5 years ago

Protože wp_insert_user nepodporuje více rolí pro uživatele , udělal jsem to takto:

            $userdata = [
                'user_login' => $email,
                'user_email' => $email,
                'first_name' => sanitize_text_field( $request->get_param( 'firstname' ) ),
                'last_name'  => sanitize_text_field( $request->get_param( 'lastname' ) ),
                'user_pass'  => $_password,
            ];

            $userdata = apply_filters( 'ssc_new_user_data', $userdata );

            $user_id = wp_insert_user( $userdata );

            do_action( 'ssc_new_user_created', $user_id );

Můžete tedy jak upravit data dle libosti při zakládání nového uživatele, tak mu přiřadit nějakou roli po tom, co je vytvořený.

vlastimilott commented 5 years ago

Super, díky moc!

jakubboucek commented 5 years ago

Schváleno (b480b2e071bc35ffbd9a9c1b7c83f72cbc38a453)