Снять ограничения «Страница оплаты клиента» для администраторов в WooCommerce (возможность pay_for_order?) - PullRequest
0 голосов
/ 27 ноября 2018

Я заинтересован в том, чтобы снять ограничение, которое запрещает кому-либо, кроме клиента, оплачивать свой заказ, чтобы администратор мог вмешаться и выполнить платеж от имени клиента, если у клиентов возникли проблемы при самостоятельной оплате любогопричина.

В настоящее время, если клиент делает заказ и отклоняет платеж, ссылка на «Страницу оплаты клиента» на экране редактирования заказа приводит к сообщению, которое гласит:

Этот заказ не может быть оплачен.Пожалуйста, свяжитесь с нами, если вам нужна помощь.

Это ограничение, которое я пытаюсь снять - я сократил его до этого кода;

// Logged in customer trying to pay for someone else's order.
            if ( ! current_user_can( 'pay_for_order', $order_id ) ) {
                throw new Exception( __( 'This order cannot be paid 
for. Please contact us if you need assistance.', 'woocommerce' ) );
            }

, который находится вfile:

/ plugins / woocommerce / includes / shortcodes / class-wc-shortcode-checkout.php

, который, по-видимому, ссылается на возможности пользователя.

Что будетлучший способ дать администраторам возможность 'pay_for_order' для любого заказа?

Большое спасибо за любую помощь, которую вы можете оказать

1 Ответ

0 голосов
/ 28 ноября 2018

Это действительно грубый пример, но это то, что вы ищете.Вы можете добавить это в свой файл functions.php.Это даст роли администратора эту возможность.

function allow_admin_to_pay_for_order(){

     $administrator = get_role('administrator');
     $administrator->add_cap( 'pay_for_order' );
}

add_action('init', 'allow_admin_to_pay_for_order');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...