wordpress - 如何将现有优惠券添加到 Woocommerce 订阅?
问题描述
我的用户可以通过表格请求他们的续订订单折扣(或取消他们的订阅)。
使用表单提交挂钩我创建了一个函数,如果操作是 === "cancel" 它会取消订阅,但如果操作是 === "discount" 我不知道如何应用(现有)优惠券订阅。
优惠券名称为“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;
}
}
}
}
}
}
解决方案
推荐阅读
- xaml - 使用 OnPlatform 时,无法让标签在 ResourceDictionary 中工作的 FontSize
- c++ - 为 clang 强制执行 C++98/03
- javascript - 使用 DisplayTag 循环遍历 HashMap
- python - Python 读取 PE 文件并更改资源部分
- spring - Webflux 表现时髦的方面
- r - fread 将两列合二为一
- ruby - 如何在 Ruby 中装饰所有类似的方法?
- .net - OData 相关的性能问题
- ios - 在 UITableViewCell 中更改 UIImageView 的大小
- qt - 为什么 QDeclarativeGeoMap::visibleRegion 在 QtLocation Map 中是不可通知的?