如何解决在 URL 中没有 ?pay_for_order=true&key=wc_order_XXXXXX 参数的情况下支付 Woocommerce 订单
我有此代码,并希望增加我网站的收入,以允许人们通过不带参数 pay_for_order 和 wc_order_{keynumber} 的 URL 发送付款
尝试添加此代码并删除 URL 中的参数,但显示订单无法支付错误
有没有办法让人们使用这种 URL 结构付款?
例如:https://domainname.com/checkout/order-pay/48055/
function your_custom_function_name($allcaps,$caps,$args)
{
if (isset($caps[0])) {
switch ($caps[0]) {
case 'pay_for_order':
$user_id = $args[1];
$order_id = isset($args[2]) ? $args[2] : null;
// When no order ID,we assume it's a new order
// and thus,customer can pay for it
if (!$order_id) {
$allcaps['pay_for_order'] = true;
break;
}
$user = get_userdata($user_id);
if (in_array('administrator',(array)$user->roles)) {
$allcaps['pay_for_order'] = true;
}
$order = wc_get_order($order_id);
if ($order && ($user_id == $order->get_user_id() || !$order - > get_user_id())) {
$allcaps['pay_for_order'] = true;
}
break;
}
}
return $allcaps;
}
add_filter('user_has_cap','your_custom_function_name',10,3);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。