Как добавить краткое описание каждого продукта на страницу проверки в Woocommerce? Я провел много исследований, и это лучшее, что я придумал.
<?php if (sizeof($woocommerce->cart->get_cart())>0) : foreach ($woocommerce->cart->get_cart() as $item_id => $values) : $_product = $values['data']; if ($_product->exists() && $values['quantity']>0) : echo ' <tr class = "' . esc_attr(apply_filters('woocommerce_checkout_table_item_class', 'checkout_table_item', $values, $item_id ) ) . '"> <td class="product-name">'.$_product->get_title().$woocommerce->cart->get_item_data( $values ).'</td> <td class="short_description">'.$_product->get_post_data().$woocommerce->post->get_post_excerpt( $values ).'</td> <td class="product-quantity">'.$values['quantity'].'</td> <td class="basispreis">'.$_product->get_price().$woocommerce->post->get_post_excerpt( $values ).'</td> <td class="product-total">' . apply_filters( 'woocommerce_checkout_item_subtotal', $woocommerce->cart->get_product_subtotal( $_product, $values['quantity'] ), $values, $item_id ) . '</td> </tr>'; endif; endforeach; endif; do_action( 'woocommerce_cart_contents_review_order' ); ?>
Я получаю ошибку
Обрезаемая фатальная ошибка: объект класса WP_Post не может быть преобразован в строку в /wp-content/plugins/woocommerce/templates/checkout/form-checkout.php в этой строке
<td class="short_description">'.$_product->get_post_data().$woocommerce->post->get_post_excerpt( $values ).'</td>
Для woocommerce_get_item_data
можно использовать фильтр woocommerce_get_item_data
.
Вот так:
add_filter( 'woocommerce_get_item_data', 'wc_checkout_description_so_15127954', 10, 2 ); function wc_checkout_description_so_15127954( $other_data, $cart_item ) { $post_data = get_post( $cart_item['product_id'] ); $other_data[] = array( 'name' => $post_data->post_excerpt ); return $other_data; }
Обратите внимание, что может потребоваться какая-то проверка, например, убедитесь, что этот фильтр вызывается только при фактическом просмотре страницы Checkout, так как я не знаю, будет ли он вызываться в других случаях.