【问题标题】:WooCommerce ShipStation extention using billing address instead of shipping addressWooCommerce ShipStation 扩展使用帐单地址而不是送货地址
【发布时间】:2018-05-12 16:02:45
【问题描述】:

当在WordPress 上使用WooCommerceShipStation 插件扩展时,我遇到了一个问题,即使用帐单地址而不是默认地址将地址导出到ShipStation(在我的情况下是送货地址)来自WooCommerce 设置。

我尝试过的事情:

  • 确保发货站在我的自定义设置中正确设置
  • 确保在WooCommerce 设置中将WooCommerce 的默认地址设置为“送货”
  • 确保没有对 ShipStation 挂钩或过滤器进行冲突调用

在与自动支持交谈时我无法找到合适的解决方案,该支持建议通过禁用主题和插件冲突并使用 Twenty-7 作为主题来禁用它们的正常过程。

不是他们的错。只是正常需要检查基础知识。鉴于最终解决方案缺乏曝光,我想我会在这里发布我的问题,因为这是答案部分中的解决方案 - 希望这不是某种违反 Stack Overflow 政策的行为。答案如下:

【问题讨论】:

    标签: php wordpress woocommerce shipping orders


    【解决方案1】:

    我发现插件会在决定向 Ship Station 发送地址之前检查是否为用户设置了发货国家/地区。这通常没问题,但在我的情况下,国家/地区已从结帐表格中删除,因此它们从未为结帐客户设置。这意味着当 ShipStation 暂存数据以导出到 ShipStation 时,检查将失败。

    我的解决方法是在将任何数据导出到 ShipStation 之前将运输和计费国家/地区设置为“美国”(我的客户的原产国)为空或未定义。由于在导出时似乎没有定义任何过滤器来进行此更改,因此我将此更新附加到我们的客户将在每个发货日之前运行的另一个流程。

    foreach ($users as $user=>$value) {
      $this_user = get_user_by('id',$user);
      if ($this_user->billing_country == null){
       update_user_meta($this_user->ID,'billing_country','US');
      }elseif (!$this_user->billing_country) {
        add_user_meta($this_user->ID,'billing_country','US');
      }
      if ($this_user->shipping_country == null){
        update_user_meta($this_user->ID,'shipping_country','US');
      }elseif (!$this_user->shipping_country) {
       add_user_meta($this_user->ID,'shipping_country','US');
      }
    }
    

    这会在每次运行履行报告时更新元数据,以便始终有一个帐单和发货国家/地区。

    这适用于我的情况,但有点不礼貌。如果这个问题足够普遍以保证更灵活的替代方案,我愿意接受其他方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-15
      • 1970-01-01
      • 2015-09-17
      • 1970-01-01
      • 2013-02-28
      • 1970-01-01
      • 1970-01-01
      • 2014-06-02
      相关资源
      最近更新 更多