Обновление даты истечения срока действия Memberpress после создания транзакции

Я хочу назначить дату истечения срока действия Memberpress через 1 (или 2) года от текущей даты истечения срока вместо добавления лет к сегодняшней дате, что является поведением по умолчанию.

Я использую гравитационные формы с гравитационным прессом для регистрации участников. В форме я беру текущую дату истечения срока действия, добавляю к ней соответствующее количество лет и помещаю в другое поле, которое попадает в метамету пользователя при сохранении формы.

Я пытаюсь использовать следующий код для обновления даты истечения срока действия после завершения транзакции.

Я на правильном пути?

 $transaction = $event->get_data();
 $user = $transaction->user();

 if(($subscription = $transaction->subscription_id)) {
   $subscription_number = $subscription->subscr_id;
   //This transaction belongs to a recurring subscription
 }
 else {
   $transaction_number = $transaction->trans_num;
   //This is a non-recurring transaction
 }

global $wpdb;

$newdate = mysql_result(mysql_query("SELECT yearFromNow FROM usermeta WHERE userid = ".$user. "and meta_key = 'mepr_mepr_yearfromnow' " ), 0);

$insertdate = mysql_result(mysql_query("INSERT into wp_mepr_transactions max(expires_at) value ".$newdate." into WHERE userid = ".$user ), 0);


}
add_action('mepr-event-transaction-completed', 'mepr_capture_completed_transaction'); ```


person Connie Fournier    schedule 12.01.2020    source источник


Ответы (1)


Запросы SQL следует проверять на наличие ошибок, прежде чем предположить, что в возвращаемом значении есть результат.

Всегда старайтесь максимально использовать SQL, а не извлекать данные в PHP, а затем повторно использовать данные. Например, в вашем случае есть INSERT .. SELECT это может быть полезно.

Обратите внимание на синтаксис, ваш оператор INSERT не соответствует существующему синтаксису, и трудно понять, что было задумано.

person danblack    schedule 13.01.2020
comment
Я изменил оператор вставки на это: $insertdate = mysql_result(mysql_query("INSERT into wp_mepr_transactions expires_at value ".$newdate." WHERE userid = ".$user . "and ". $transaction. "== trans_num" ), 0); Я собираюсь изменить его на INSERT .. SELECT, как вы предложили. Теперь мне просто нужно выяснить, почему он не вставляет новую дату, если членство такое, которого у них не было раньше. - person Connie Fournier; 13.01.2020