首页 文章

WooCommerce One Page Checkout不显示属性或变体

提问于
浏览
0

Wordpress> WooCommerce> One Page Checkout

在启用了One Page Checkout的单个产品上,我有3个属性变体:

Product Variations Dashboard

选择变体并将其添加到订单后,单页签出将显示产品名称,但不包括变体:

One Page Checkout - No Variations Displayed

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

我只想使用One Page Checkout显示客户选择的变体以及产品名称 .

有人可以帮忙吗?

PS:如果这是不正确的发布地点我很抱歉 . 我是社区的新手,只花了1个Php和CSS课程,并且已经搜索谷歌和Stack以获得答案 . 希望有人可以提供帮助 . 先感谢您! :)

1 回答

  • 2

    在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
    );
    

相关问题