删除WooCommerce中针对管理员的“客户付款页面”限制(pay_for_order功能?)

时间:2018-11-27 19:37:12

标签: php wordpress woocommerce

我有兴趣取消限制,该限制可以阻止除客户之外的任何人付款,以便当客户无法自行付款时,管理员可以代表客户进行付款原因。

当前,如果客户下订单并且付款失败,则在订单编辑屏幕上指向“客户付款页面”的链接会将您带至显示以下消息:

  

此订单无法付款。如果需要请联系我们   协助。

这是我要删除的限制-我已将其限制为此代码;

// 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' ) );
            }

文件中有哪个

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

似乎引用了用户功能。

为管理员提供针对任何订单“ pay_for_order”功能的最佳方法是什么?

非常感谢您能提供的帮助

1 个答案:

答案 0 :(得分:1)

这是一个非常粗糙的示例,但这正是您要寻找的。您可以将其添加到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');