BuddyDev

Search

to the connection of an existing member: change (role, plan)

  • Keymaster
    (BuddyDev Team)
    Posts: 24190
    Brajesh Singh on #15232

    Hi Herve,
    Thank you for reminding.

    I will give it another shot tomorrow and post back.

    Regards
    Brajesh

  • Participant
    Level: Enlightened
    Posts: 126
    Hervé on #15382

    Hello Brajesh
    Can you help me ?
    Regards

  • Keymaster
    (BuddyDev Team)
    Posts: 24190
    Brajesh Singh on #15383

    Hi Herve,
    Remove all the code(take a backup).

    Use the following code

    1. It will change member type to ‘member0’ when all conditions matches. The conditions are
    a. User must have a photo
    b). User must have all required fields
    c). User should have the field with id ’57′(or change it) and its value as “Une Femme” as per your post.

    Once a user’s role changes, It does not remove the role. If you want to remove, Pleases do that in mark_incomplete function.

    Regards
    Brajesh

  • Keymaster
    (BuddyDev Team)
    Posts: 24190
  • Participant
    Level: Enlightened
    Posts: 126
    Hervé on #15400

    Hi
    Thank you I understand why it has been long. You wanted to completely change your first function!!
    Now I am very embarrassed because I did not want to change it (it seems to work well).

    I just wanted a correction of my program prov_transfert($user_login, $user) [in wp_login] that did not work 🙁
    As we have trouble understanding ourselves, I did not want detailed. I then want to do several small functions for different cases.
    Regards

  • Keymaster
    (BuddyDev Team)
    Posts: 24190
    Brajesh Singh on #15405

    Hi Herve,
    to be honest, I have no idea what worked in the first and what did not. That’s why I tried to rewrite it.

    As per your previous message

    The idea is at the moment of connection (That’s when I can not do it, I think), check if the member has
    * a photo
    * all mandatory fields filled
    * a subscriber role
    * a special value for an xprofile field

    If yes I change the role of the member (member0)

    I made it such.

    What changes do you want in this. Please do know that like I explained earlier, I am unable to work with parts. The code you had supplied was using incorrect variable($this outside the class scope, $bp without declaring global).

    Can you please tell me the issue you are facing with the above code. It is just an upgrade of the previous code and as per your requirement, It does change the role.

    Thank you
    Brajesh

  • Participant
    Level: Enlightened
    Posts: 126
    Hervé on #15406

    I,
    In fact
    Your first code works well
    My code does not work He does not do the role change
    I wanted to have a function at the time of the connection (event: wp_login?), Which

    1 / tests the variables (equivalent of your program that works) of a member who connects and who does not have the right role (I can not explain why because it would be difficult):
    a) User must have a photo
    b) User must have all required fields
    c) subscriber rôle

    2/ If everything is ok, the member moves to the new role
    Regards

  • Keymaster
    (BuddyDev Team)
    Posts: 24190
    Brajesh Singh on #15407

    Can you please take backup of the first code and try it.

    It does exactly that.

    Also, I am still not sure what a connection is but it works by checking on each page load. since it uses the logged in user’s user meta for checking, The impact on performance will be neglible.

    Login is just one of the events where profile status changes. The profile status may also change on photo upload/delete or profile filed update.

    Regards
    Brajesh

  • Participant
    Level: Enlightened
    Posts: 126
    Hervé on #15415

    Hello Brajesh
    Unfortunately it does not work!
    I do not have an error message After a new registration, I do not have a message telling me that I did not fill in the required fields or the photo.
    I put my code https://gist.github.com/sbrajesh/3d7ab3f50dff9bc1ef2df1e9c5a28c53 with my previous modifications of the old program

    To avoid complicating, I unfortunately did not explain that I wanted to make a second program that uses your first program (a member must always have entered all the fields and put his picture).
    I do not want to modify your program or ask you (several times) to modify it so as not to disturb you

    This 2nd program will be the basis of many others that I must be able to do alone

    Today your program is working well

    Tomorrow I want to use your program class BuddyDev_Profile_Field_Completion_Helper (improved?) AND function change
    I will need to create and modify small programs function change1, function change2 …. for different contexts. examples (I know it’s not a valid code, just structures)
    CODE:

    
     
    IF the member has entered all the required fields and upload his photo (it's a simple!? 
    Check after using class BuddyDev_Profile_Field_Completion_Helper , to avoid giving rights.If it's too complicated, it is possible not to do the test
      
      add_action('wp_login', 'change1', '99', 2); 
      function change1($user_login, $user) { 
        $user_id = $user->ID; 
        $field_jesuis = '57'; 
        $jesuis = xprofile_get_field_data($field_jesuis,$bp->loggedin_user->id ); //  $user_id );
        if ( $user->has_cap('membre0') && ($jesuis='Une Femme')) {  
           ..
           do_action ...
           $user_id->add_role( 'membre1' ); 	}
       }
    
     add_action('wp_login', 'change2', '99', 2); 
     function change2($user_login, $user) { 
       $user_id = $user->ID; 
       $field_XYZ = 'XYZ'; 
       $XYZ = xprofile_get_field_data($field_XYZ,$bp->loggedin_user->id ); //  $user_id );
       if ( $user->has_cap('membre1') && ($XYZ='fsdfdsfd')) {
         ..
         do_action ...
         $user_id->add_role( 'membre2' ); 	}
      }
    
    IF END
    
    

    My 2 problems were to a) test the role at the connection of a member and b) if possible to check at the same time the mandatory entries

    If you want to stop, I understand.
    Otherwise please tell me how I can integrate very simply these different functions in your program (no risk of problem) or so give me the CODE
    Thanks

    • This reply was modified 5 years, 10 months ago by Hervé.
  • Keymaster
    (BuddyDev Team)
    Posts: 24190
    Brajesh Singh on #15421

    Hi Herve,
    I am sorry but I don’t think I will be able to assist you on this.

    For me, as I said earlier, the solutions provided are very specific to what you mention. In some of the cases, they may act as a general solution but most of the time they will break.

    In your case, even after so many days, I am still not sure, what exactly you are looking for.

    The latest solution is tested to change the the role on completion.

    Here is teh notice on BuddyPress 2.9
    https://i.imgur.com/FQcmNH5.png

    and on BuddyPress 3.0

    https://i.imgur.com/LVWiwJM.png

    Regards
    Brajesh

You must be logged in to reply to this topic.

This topic is: not resolved