I am trying to save user registration to my database only after they have paid through PayPal. I'm attempting to do this through the PayPal-IPN. This is for a wordpress website. The plugins I am using include Ultimate Member and PayPal IPN for WordPress.
I'm having trouble visualizing the code for this solution.
This is what I have so far
add_action( 'um_before_save_registration_details', 'my_before_save_registration_details', 10, 2 );
function my_before_save_registration_details( $user_id, $submitted ) {
$payment_status = isset($posted['payment_status']) ? $posted['payment_status'] : '';
if($payment_status != ('completed'||'processed'||'pending')) {
exit( wp_redirect( add_query_arg('err', 'payment_required') ) );
}
}
The issue with this code is that it runs before the customer has the chance to pay so they are never saved in the database.
I'm wanting to save registration details only if the PayPal Payment status is completed, processed, or pending. I'm using documentation from Ultimate Member which can be found here: https://docs.ultimatemember.com/article/1062-umbeforesaveregistrationdetails