我正在写一个函数,添加一个“取消”按钮到我的订阅列表与woocommerce订阅。
问题是,当我单击时,出现错误:
安全性错误。如果您需要协助,请与我们联系。
我目前的代码是:
add_action('woocommerce_my_subscriptions_actions', 'cancelButton', 15);
function cancelButton( $subscription ) {
$status = $subscription->get_status();
$sub_id = $subscription->get_order_number();
$cancel_url = wp_nonce_url( '?subscription_id=' . $sub_id . '&change_subscription_to=cancelled' );
if ( $status == 'active' || $status == 'on-hold' || $status == 'pending' ) {
echo '<a href="' . $cancel_url . '" class="button view" onclick="alert("Tem certeza que deseja cancelar sua assinatura?")">' . __( 'Cancelar', 'starling' ) . '</a>';
}
}
我也试过另一种方法,但是当账单日期后面有日期时,这种方法就不起作用了,差别只在“回声”里面。
echo '<a href="' . $subscription->get_cancel_order_url() . '" class="button view" onclick="alert("Tem certeza que deseja cancelar sua assinatura?")">' . __( 'Cancelar', 'starling' ) . '</a>';
我找不到调用此按钮的正确方法,因此我尝试创建自己的方法。
我还在学习编码,所以可能还有很大的改进空间。“onclick”警报也不起作用。
任何帮助都是非常感谢的!
1条答案
按热度按时间zdwk9cvp1#
我终于想出了一个解决办法。
看起来我在使用“wp_nonce_url”时缺少了一些参数,woocommerce订阅需要在处理请求之前在操作中验证订阅的ID和当前状态。
我设法理解了这个逻辑,通过去通过Woocommerce订阅的核心,并看看他们如何创建他们的链接,他们如何处理他们。我还没有找到任何关于它的文档。
所以我的代码现在看起来像这样...
我希望这对其他人也有帮助!