我需要一些帮助来暂时删除“我的帐户”内“我的订阅”页面中的取消按钮。我想隐藏取消按钮,直到至少 3 个月后自用户订阅以来(或 90 天)。订阅3个月后,取消按钮将再次出现。
使用:Woocommerce 与 Woo 订阅和 Woo 会员资格一起使用
我发现了另一个问题,该问题已得到解答,但无论我如何编辑它,我似乎都无法使代码正常工作(在 WooCommerce 中禁用单个订阅的取消订阅 https://stackoverflow.com/questions/58486397/disable-cancel-subscription-for-single-subscription-in-woocommerce). 下面的第一段代码来自链接.
function sv_edit_my_memberships_actions( $actions ) {
// Get the current active user
$user_id = wp_get_current_user();
if(!$user_id) // No valid user, abort
return $actions;
// Only query active subscriptions
$memberships_info = wc_memberships_get_user_active_memberships($user_id, array(
'status' => array( 'active' ),
));
// Loop through each active subscription
foreach ($memberships_info as $membership) {
$subscription_start_date = date("Y/m/d", strtotime($membership->get_start_date()));
//$subscription_end_date = date("Y/m/d", strtotime($membership->get_end_date()));
//$subscription_name = $membership->get_plan()->get_name();
//$subscription_id = $membership->get_plan()->get_id();
if($subscription_id == 'YOUR_ID') { // Active subscription
// Compare the starting date of the subscription with the current date
$datetime1 = date_create($subscription_start_date);
$datetime2 = date_create(date(time()));
$interval = date_diff($datetime1, $datetime2);
if($interval->format('%m') <= 11) {
// remove the "Cancel" action for members
unset( $actions['cancel'] );
}
}
}
return $actions;
}
我已经能够使用下面的代码隐藏取消按钮,但是它无限期地隐藏它:
function remove_cancel_button( $actions, $subscription ) {
foreach ( $actions as $action_key => $action ) {
switch ( $action_key ) {
case 'cancel': // Remove the cancel button
unset( $actions[ $action_key ] );
break;
default:
error_log( '-- $action = ' . print_r( $action, true ) );
break;
}
}
return $actions;
}
add_filter( 'wcs_view_subscription_actions', 'remove_cancel_button', 100, 2);