【问题标题】:Remove ‘Customer payment page’ restrictions for admins in WooCommerce (pay_for_order capability?)删除 WooCommerce 中管理员的“客户付款页面”限制(pay_for_order 功能?)
【发布时间】:2018-11-27 19:37:12
【问题描述】:

我有兴趣取消阻止客户以外的任何人为其订单付款的限制,以便管理员可以在客户无法自行付款时介入并代表客户付款原因。

目前,如果客户下订单但付款失败,订单编辑屏幕中的“客户付款页面”链接会将您带到一条消息:

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

这是我要消除的限制——我已将其范围缩小到此代码;

// 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

这似乎引用了用户能力。

让管理员能够为任何订单“支付订单”的最佳方式是什么?

非常感谢您提供的任何帮助

【问题讨论】:

  • 嘿,您可以为管理员角色添加功能,请参阅此帖子以获取示例 wordpress.stackexchange.com/questions/74853/… 或者修改该代码以允许管理员在 if 语句中添加或条件可能会更容易。我会推荐第一个,就像您修改此文件一样,它将在更新中更新。

标签: php wordpress woocommerce


【解决方案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');

【讨论】:

  • 谢谢你,我会试试看:)
猜你喜欢
  • 2015-08-24
  • 1970-01-01
  • 2014-07-21
  • 1970-01-01
  • 2021-11-03
  • 2019-02-21
  • 2019-05-25
  • 2019-12-16
  • 1970-01-01
相关资源
最近更新 更多