#woocommerce #payment
Вопрос:
У меня есть этот код, и я хотел увеличить доход на своем веб-сайте, чтобы люди могли оплачивать отправку по URL-адресу без параметра pay_for_order и wc_order_{номер ключа}
попытался добавить этот код и удалить параметры в 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 amp;amp; ($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);