. get_var( "SELECT id FROM $wpdb->pmpro_discount_codes WHERE `code` = '" . esc_sql( $membership_discount_code ) . "' LIMIT 1" ); //change membership level if( !empty( $membership_id ) ) { $custom_level = array( 'user_id' => $user_id, 'membership_id' => $membership_id, 'code_id' => $membership_code_id, 'initial_payment' => $membership_initial_payment, 'billing_amount' => $membership_billing_amount, 'cycle_number' => $membership_cycle_number, 'cycle_period' => $membership_cycle_period, 'billing_limit' => $membership_billing_limit, 'trial_amount' => $membership_trial_amount, 'trial_limit' => $membership_trial_limit, 'status' => $membership_status, 'startdate' => $membership_startdate, 'enddate' => $membership_enddate ); pmpro_changeMembershipLevel( $custom_level, $user_id ); //if membership was in the past make it inactive if( $membership_status === "inactive" || ( !empty( $membership_enddate ) && $membership_enddate !== "NULL" && strtotime( $membership_enddate, current_time('timestamp') ) < current_time('timestamp') ) ){ $sqlQuery = "UPDATE $wpdb->pmpro_memberships_users SET status = 'inactive' WHERE user_id = '" . $user_id . "' AND membership_id = '" . $membership_id . "'"; $wpdb->query( $sqlQuery ); $membership_in_the_past = true; } if( $membership_status === "active" && ( empty( $membership_enddate ) || $membership_enddate === "NULL" || strtotime( $membership_enddate, current_time('timestamp') ) >= current_time('timestamp') ) ){ $sqlQuery = $wpdb->prepare( "UPDATE {$wpdb->pmpro_memberships_users} SET status = 'active' WHERE user_id = %d AND membership_id = %d", $user_id, $membership_id ); $wpdb->query( $sqlQuery ); } } if( !empty( $membership_subscription_transaction_id ) && !empty( $membership_gateway ) || !empty( $membership_timestamp ) || !empty( $membership_code_id ) ){ $order = new MemberOrder(); $order->user_id = $user_id; $order->membership_id = $membership_id; $order->InitialPayment = $membership_initial_payment; $order->payment_transaction_id = $membership_payment_transaction_id; $order->subscription_transaction_id = $membership_subscription_transaction_id; $order->affiliate_id = $membership_affiliate_id; $order->gateway = $membership_gateway; if( !empty( $membership_in_the_past ) ) $order->status = "cancelled"; $order->saveOrder(); if( !empty( $membership_timestamp ) ){ $timestamp = strtotime( $membership_timestamp, current_time('timestamp') ); $order->updateTimeStamp( date( "Y", $timestamp ), date( "m", $timestamp ), date( "d", $timestamp ), date( "H:i:s", $timestamp ) ); } } if( !empty( $membership_code_id ) && !empty( $order ) && !empty( $order->id ) ) $wpdb->query( "INSERT INTO $wpdb->pmpro_discount_codes_uses (code_id, user_id, order_id, timestamp) VALUES('" . esc_sql( $membership_code_id ) . "', '" . esc_sql( $user_id ) . "', '" . intval( $order->id ) . "', now())" ); }