I'm trying to create the below function to check a user's for the metadata field "order_review_cards", and swap the value for Yes-no or no-yes.

Not sure why the code isn't working.

I can do:

update_user_meta( $user_id, 'order_review_cards', "YES"  );

and it will set the meta to YES, but if I go the if/else nothing updates.

function update_review_form_meta( $atts ){
        if (is_user_logged_in()) {
        $user_id = get_current_user_id();           
        $review_meta = get_user_meta($user_id, 'order_review_cards', TRUE);
            if ($review_meta == "No"){  
                update_user_meta( $user_id, 'order_review_cards', "YES"  );
            }elseif ($review_meta =="Yes"){
                update_user_meta( $user_id, 'order_review_cards', "NO"  );
  • 1
    Why is this a shortcode? Updating user meta is really not an appropriate use for a shortcode. When is this code supposed to run? Apr 11, 2022 at 7:01
  • @JacobPeattie to be honest because I'm learning as I go and don't know AJAX etc. I've ended up just changing the function to only set the meta to "YES" and put the shortcode on a redirect page so it is triggered after completing a form. Probably a poor way to do this I know PHP is supposed to run with AJAX but this way is working for me right now.
    – Mitch C
    Apr 13, 2022 at 23:12


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.