Мои пользователи могут запросить скидку (или отменить свою подписку) на свой заказ на продление через форму.
Используя перехват отправки формы, я создал функцию, которая, если действие === "отменить", отменяет подписку, но если действие === "скидка", я не знаю, как применить ) купон на подписку.
Купон называется "40off-Renewal"
add_action('frm_after_create_entry', 'csuf_cancel_subscription', 100, 2);
add_action('frm_after_update_entry', 'csuf_cancel_subscription', 100, 2);
function csuf_cancel_subscription($entry_id, $form_id)
{
if ($form_id == 3 && isset($_POST['item_meta'][11]) && isset($_POST['item_meta'][39]) && 'cancel' == $_POST['item_meta'][39]) {
$user = get_user_by('email', $_POST['item_meta'][11]);
if (!empty($user) && function_exists('wcs_get_users_subscriptions')) {
$users_subscriptions = wcs_get_users_subscriptions($user->ID);
if (is_array($users_subscriptions)) {
foreach ($users_subscriptions as $subscription) {
if ($subscription->has_status(array('active'))) {
$subscription->update_status('cancelled');
break;
}
}
}
}
}
}