Advertisement
Fany_VanDaal

Změna uživatelské role po prvním nákupu

May 23rd, 2019
209
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // přiřazení nové role zákazníkovi poté, co je jeho objednávka dokončena
  2. function vandaal_convert_paying_customer( $order_id ) {
  3.  
  4. $order = new WC_Order( $order_id );
  5.  
  6. if ( $order->user_id > 0 ) {
  7. update_user_meta( $order->user_id, 'paying_customer', 1 );
  8. $user = new WP_User( $order->user_id );
  9.  
  10. // odebereme roli
  11. $user->remove_role( 'customer' );
  12.  
  13. // přiřadíme roli
  14. $user->add_role( 'member' );
  15. }
  16. }
  17. add_action( 'woocommerce_order_status_completed', 'vandaal_convert_paying_customer' );
  18.  
  19. [/php]
  20.  
  21. Pokud by jste chtěli novou roli použít ihned po vytvoření objednávky, tedy bez toho, aniž by byl změněn její stav na dokončeno, můžete použít tento snippet:
  22.  
  23. [php]
  24. // přiřazení nové role zákazníkovi po vytvoření objednávky
  25. function vandaal_change_role( $order_id ) {
  26.   $order = new WC_Order($order_id);
  27.   $user = $order->get_user();
  28.    
  29.   // zkontrolujeme, jestli se nejedná o administrátora
  30.   if( false != $user && !user_can($user, 'administrator') ){
  31.  
  32.     // jakou má získat roli
  33.     $role = 'member';
  34.  
  35.     // nastavíme novou roli pro daného zákazníka
  36.     $user->set_role($role);  
  37.    
  38.   }  
  39. }
Advertisement
RAW Paste Data Copied
Advertisement