【问题标题】:Solution for Short Description in checkout woocommerce wordpress not working for me结帐 woocommerce wordpress 中简短描述的解决方案不适合我
【发布时间】:2015-01-12 10:37:49
【问题描述】:

我已经使用了我在Short Description in checkout woocommerce wordpress 找到的 brasofilo 提供的解决方案。

但由于某种原因,每个产品的每个描述后都会添加一个冒号。

我使用萤火虫试图找出它可能来自哪里。它显示在结帐页面上显示的每个产品的 dt class="variation-Productdescription" 的末尾。这是我从 firebug 复制的代码:

<tbody>
<tr class="cart_item">
<td class="product-name">
<a href="http://shopurl/product/Product1/">Product1</a>
<strong class="product-quantity">× 1</strong>
<dl class="variation">
<dt class="variation-Productdescription">
<div class="post-content">
:
</dt>
<dd class="variation-Productdescription></dd>
</dl>
</td>
<td class="product-total">
</tr>
<tr class="cart_item">
</tbody>

编辑:

我是新手,这里还不能上传图片,所以我把问题截图上传到http://i.imgur.com/HMh8A3P.jpg?1

产品简短描述没有冒号。

A Screenshot of the Product Short Description

编辑 2:

目前对我有用的解决方案是:

 add_filter( 'woocommerce_get_item_data', 'wc_checkout_description_so_27900033', 10, 2 ); 
function wc_checkout_description_so_27900033( $other_data, $cart_item )
{
 $post_data = get_post( $cart_item['product_id'] );
 echo $post_data->post_excerpt;
 return $other_data;
 }

但正如 helgatheviking 所指出的,这不是一个好的解决方案,即使它有效。

我会在没有echo 的情况下找到更好的解决方案。

【问题讨论】:

  • 你能通过屏幕截图向我们展示输出吗?

标签: php wordpress woocommerce


【解决方案1】:

我认为在 WooCommerce v2.2 前后,结帐类中的 $other_data 变量已更改为需要 namevalue 对的数组。因此,来自另一个线程的代码已经过时。使用它 WooCommerce 找不到 namevalue 所以这些部分是空白的,你只剩下它们应该在的位置之间的冒号。试试这个更新:

add_filter( 'woocommerce_get_item_data', 'wc_checkout_description_so_27900033', 10, 2 );

function wc_checkout_description_so_27900033( $other_data, $cart_item )
{
    $post_data = get_post( $cart_item['product_id'] );
    $other_data[] = array( 'name' =>  'description', 'value' => $post_data->post_excerpt );
    return $other_data;
}

【讨论】:

  • 效果更好。你能告诉我如何更改代码,以便只显示描述,而不显示描述:之前? i.imgur.com/0wim8Oa.jpg
  • 我找到了一个解决方案,通过使用 echo 命令。 add_filter('woocommerce_get_item_data', 'wc_checkout_description_so_27900033', 10, 2);函数 wc_checkout_description_so_27900033( $other_data, $cart_item ) { $post_data = get_post( $cart_item['product_id'] );回声 $post_data->post_excerpt;返回 $other_data;现在看起来像这样:i.imgur.com/i8O0qBl.jpg
  • cmets 中的代码很难阅读。如果你编辑你的问题会更好。也就是说,您不应该将echo 添加到过滤器...因为您正在回显的部分只会在调用echo 时出现,并且不一定必须在需要输出的位置.在这种情况下它可能有效,但这不是一个好习惯。始终使用过滤器 return $something。在这种情况下,要修改其他数据的显示方式,您需要在主题中覆盖 WooCommerce 的 cart/cart-item-data.php 模板。
  • 嗨。您是否曾经将产品描述显示到所有产品列表中?因为,我尝试了这个解决方案,但描述只显示到 1 个产品。
猜你喜欢
  • 2013-02-14
  • 2022-11-30
  • 2016-06-12
  • 2021-06-22
  • 2020-08-28
  • 2020-10-21
  • 2021-04-24
  • 2017-02-09
  • 2018-08-14
相关资源
最近更新 更多