【问题标题】:WooCommerce One Page Checkout does not display attributes or variationsWooCommerce One Page Checkout 不显示属性或变体
【发布时间】:2018-02-01 07:54:14
【问题描述】:

Wordpress > WooCommerce > 一页结帐

在启用单页结帐的单个产品上,我有 3 个属性变体:

选择变体并将其添加到订单时,单页结帐会显示产品名称,但不包括变体:

变体显示在完整的购物车中,但在使用 One Page 时不显示。当客户订购多种变体时,这可能会让他们感到困惑。

我只想使用 One Page Checkout 在产品名称旁边显示客户选择的变体。

谁能帮忙?

PS:如果发帖的地方不正确,我深表歉意。我是社区的新手,只上过一门 Php 和 CSS 的课程,并且已经在 Google 和 Stack 中寻找答案。希望有人可以提供帮助。先感谢您! :)

【问题讨论】:

  • WooCommerce 3.x 中的一个变化似乎从购物车项目数据中删除了变化信息,并要求插件和主题使用 get_name() 而不是 get_title() 来获取产品标题包括变化信息。也许 One Page Checkout 尚未更新以反映这一变化?

标签: wordpress woocommerce attributes checkout variations


【解决方案1】:

在 WooCommerce 2.x 中,变体属性作为元数据显示在购物车中,但在 WooCommerce 3.x 中,它们包含在产品名称中。但这需要更改插件或主题中的任何购物车自定义,以使用新的 WC_Product 方法 get_name() 而不是 get_title()。

如果这是第三方插件或主题,理想情况下,您应该找出与 WooCommerce 3.x 完全兼容的新版本并解决问题。但作为一种解决方法,假设插件/主题使用过滤器挂钩woocommerce_cart_item_name,您可以将以下内容添加到您的主题的functions.php(如果您使用第三方主题,您应该create a child theme 这样您就不会更新时丢失您的更改):

add_filter(
  'woocommerce_cart_item_name',
  function($name, $cart_item, $cart_item_key) {
    $product = apply_filters(
      'woocommerce_cart_item_product',
      $cart_item['data'],
      $cart_item,
      $cart_item_key
    );
    if (method_exists($product, 'get_name')) {
      // WooCommerce 3.x
      $is_link = substr($name, 0, 3) === '<a ';
      $name = $product->get_name();
      if ($is_link) {
        $name = sprintf(
          '<a href="%s">%s</a>',
          esc_url($product->get_permalink($cart_item)),
          $name
        );
      }
    }
    return $name;
  },
  50, 3
);

【讨论】:

  • 杰克!你搞定了。哦,天哪,我什至不能告诉你我多么感谢你的帮助。这段代码完全解决了我(非常强调)的问题。我确实在使用插件,我将联系作者传递有关与 WooCommerce 3.x 可比性的信息。我真的不能感谢你!你喜欢pinback按钮吗?我很想给你寄一封感谢信。我是 Stack 的新手,但如果你能 DM 我,我会完全勾搭你的!
  • 我使用了相同的代码,其中第 3 方主题自定义了购物车模板但未更新。很高兴它也适用于你的情况。如果答案回答了您的问题,则应将答案标记为“已接受的答案”;如果您愿意,可以投票...
  • 大功告成!再次感谢你,杰克。您是 WooCommerce 向导! :)
猜你喜欢
  • 2016-08-07
  • 1970-01-01
  • 2012-03-31
  • 1970-01-01
  • 2021-07-01
  • 1970-01-01
  • 2015-02-18
  • 1970-01-01
  • 2019-07-09
相关资源
最近更新 更多