仅向管理员添加运输方式到 Woocommerce 订单页面

我需要向我们的 WooCommerce编辑订单页面添加一些运输方式。

这将仅供管理员内部使用,因此客户应该看不到这些选项。

是否有我们可以添加的钩子或自定义代码来填充送货方式下拉列表?

不需要额外的功能(无税、费率等)

http://img3.mukewang.com/642929740001eeb609470260.jpg

胡说叔叔
浏览 108回答 1
1回答

德玛西亚99

我认为有更多方法可以实现您的目标。这将是一个解决方案:用户角色的运送方式您可以使用用户权限解决此问题。只有“管理员”角色的用户才能使用“usps”送货方式。简单的方法是使用免费插件,例如:https://wordpress.org/plugins/user-role-editor/在此插件中,您可以选择您的用户角色并单击“添加功能”,希望能找到您的送货方式。还有完全适合您的问题的解决方案:https://wordpress.org/plugins/user-role-based-shipping-method/ 还有很多插件不是免费的,但可能会提供更多的便利和支持。更难的方法是编写一个函数并使用 woocommerce 和 wordpress 钩子和过滤器。这有点复杂,但我会给你一些开始的东西。在 wordpress 中,用户角色是一组能力。您可以像这样在 wordpress 中获取角色对象:$administrator_role = get_role( 'administrator' );您可以添加功能并删除它们:$administrator_role->add_cap( 'custom_capability' );$administrator_role->remove_cap( 'custom_capability' );在此处阅读相关内容:https ://developer.wordpress.org/plugins/users/roles-and-capabilities/幸运的是,有一个 woocommerce 过滤器可供使用。 也许你应该先看看这个,这可能会完全解决你的问题:https://docs.woocommerce.com/document/hide-other-shipping-methods-when-free-shipping-is-available/如您所见,您想要的过滤器是:add_filter('woocommerce_package_rates', 'your_function', 30, 2);http://hookr.io/filters/woocommerce_package_rates/这是一个教程,如何使用它:https://trackitweb.com/woocommerce-hide-a-shipping-method-based-on-user-role/示例中的送货方式称为“本地取件”:add_filter('woocommerce_package_rates', 'hide_local_pickup_based_on_user_role', 30, 2);function hide_local_pickup_based_on_user_role($rates, $package) {  foreach($rates as $rate_key => $rate){    if($rate->method_id === 'local_pickup'){      if(!current_user_can('local_pickup_allowed') || !is_user_logged_in()){        unset($rates[$rate_key]);        break;      }    }  }  return $rates;这是您检查角色能力(和登录)的部分,用于为没有此能力的用户取消运输方式:if(!current_user_can('local_pickup_allowed') || !is_user_logged_in()){ ... }我希望这可以帮助你!
打开App,查看更多内容
随时随地看视频慕课网APP