微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 URL 中没有 ?pay_for_order=true&key=wc_order_XXXXXX 参数的情况下支付 Woocommerce 订单

如何解决在 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 举报,一经查实,本站将立刻删除。