我有兴趣取消限制,该限制可以阻止除客户之外的任何人付款,以便当客户无法自行付款时,管理员可以代表客户进行付款原因。
当前,如果客户下订单并且付款失败,则在订单编辑屏幕上指向“客户付款页面”的链接会将您带至显示以下消息:
此订单无法付款。如果需要请联系我们 协助。
这是我要删除的限制-我已将其限制为此代码;
// 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”功能的最佳方法是什么?
非常感谢您能提供的帮助
答案 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');