首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WooCommerce单页签出不显示属性或变体

问WooCommerce单页签出不显示属性或变体
EN

Stack Overflow用户
提问于 2017-08-24 00:03:31
回答 1查看 1.7K关注 0票数 0

Wordpress > WooCommerce >单页签出

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

​

​

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

​

​

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

我只想使用一页结帐在产品名称旁边显示客户选择的变体。

有人能帮上忙吗?

附言:如果这里不是发帖的地方,我道歉。我是社区的新手,只上过Php和CSS的一门课,并且在Google和Stack中寻找答案。希望有人能帮忙。提前感谢!:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-06 00:03:26

在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,以便在更新时不会丢失您的更改):

代码语言:javascript
复制
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
);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45844558

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档