Поле типичное текстовое, подзаголовок. Там ради дизайна сделали составной заголовок - заголовок товара и подзаголовок-поле sub_title.
Пробовал вот так, но что-то ничего не изменилось, как не было подзаголова, так и не видно его.
Вот span.product-subtitle есть,но пустой.
Поле -
да - написал правильно - я его скопировал из админки.
function add_subtitle_before_product_title_in_order( $item_name, $item ) {
$product = $item->get_product();
if ( $product ) {
$subtitle = get_field('sub_title', $product->get_id());
if ( $subtitle ) {
$item_name = '<span class="product-subtitle">' . esc_html( $subtitle ) . '</span><br>' . $item_name;
}
}
return $item_name;
}
add_filter( 'woocommerce_order_item_name', 'add_subtitle_before_product_title_in_order', 10, 2 );
function add_subtitle_before_product_title_in_email( $item_name, $item ) {
$product = $item->get_product();
if ( $product ) {
$subtitle = get_field('sub_title', $product->get_id());
if ( $subtitle ) {
$item_name = '<span class="product-subtitle">' . esc_html( $subtitle ) . '</span><br>' . $item_name;
}
}
return $item_name;
}
add_filter( 'woocommerce_order_item_name', 'add_subtitle_before_product_title_in_email', 10, 2 );
add_filter( 'woocommerce_email_order_item_name', 'add_subtitle_before_product_title_in_email', 10, 2 );
// Add the subtitle column header to the order items table
function add_subtitle_column_header($columns) {
$columns['subtitle'] = __('Subtitle', 'your-textdomain');
return $columns;
}
add_filter('manage_edit-shop_order_item_columns', 'add_subtitle_column_header');
// Populate the subtitle column with the product subtitle
function display_subtitle_column_content($column, $item_id) {
if ('subtitle' === $column) {
$product = wc_get_order_item($item_id)->get_product();
if ($product) {
$subtitle = get_field('sub_title', $product->get_id()); // Assuming ACF is used for the subtitle field
echo $subtitle ? esc_html($subtitle) : '';
}
}
}
add_action('manage_shop_order_posts_custom_column', 'display_subtitle_column_content', 10, 2);
А цикл вот такой, тоже не видит подзаголовка - пустой див, и не видит кнопку добавления в корзину.
<div class="cross-sells">
<h2 class="en-text">COMPLETE YOUR ROUTINE:</h2>
<h2 class="ru-text">Завершите Ваш заказ:</h2>
<?php
// Get the last added product to the cart
$cart_items = WC()->cart->get_cart();
$last_added_product_id = 0;
foreach ($cart_items as $item) {
$last_added_product_id = $item['product_id'];
}
// Get cross-sells for the last added product
$cross_sells = get_post_meta($last_added_product_id, '_crosssell_ids', true);
if ($cross_sells) {
foreach ($cross_sells as $cross_sell_product_id) {
$product = wc_get_product($cross_sell_product_id);
if ($product) {
?>
<div class="cross-sell-product">
<!-- Product Image, Title, and Subtitle -->
<a href="<?php echo esc_url(get_permalink($cross_sell_product_id)); ?>">
<?php echo $product->get_image(array(120, 120)); ?>
<span class="product-subtitle"><?php echo esc_html(get_post_meta($cross_sell_product_id, 'sub_title', true)); ?></span>
<span class="product-title"><?php echo esc_html($product->get_name()); ?></span>
</a>
<!-- Add to Cart Button -->
<button type="button" class="single_add_to_cart_button btn btn-primary" data-product_id="<?php echo esc_attr($product->get_id()); ?>"><?php esc_html_e('Add to Cart', 'your-textdomain'); ?></button>
</div>
<?php
// Break out of the loop after displaying the first cross-sell item
break;
}
}
}
?>
</div>
Это битая тема и именно потому хуки не действуют (а она капец какая битая, но клиент небедный) или это я нашел в интернете неправильное решение и есть правильное? Если да, прошу поделиться им.
Зная, что многие тут ОЧЕНЬ БУКВАЛЬНЫЕ и на вопрос "Есть ли правльное решение" ответят "да" вместо самого кода и я пишу прям буквально - пожелитесь пожалуйста правильным кодом.