Мне нужно отобразить размеры всех вариантов продукта в таблице на странице продукта.
Мне удалось получить большую часть работы, но у меня есть несколько проблем:
Я использую $ product_variation-> get_formatted_name (). для отображения названия варианта, это работает, но извлекает много ненужных дополнительных данных. Как я могу отформатировать данные, чтобы отобразить «красивое имя» варианта продукта?
Код, который я использую для получения данных, приведен ниже:
add_action( 'woocommerce_before_add_to_cart_button', 'custom_table_after_single_product' );
function custom_table_after_single_product(){
global $product;
// Only for variable products
if( ! $product->is_type('variable')) return;
$available_variations = $product->get_available_variations();
if( count($available_variations) > 0 ){
$output = '<table>
<thead>
<tr>
<th>'. __( 'Product Dimensions' ) .'</th>
<tr>
<th>'. __( 'Style', 'woocommerce' ) .'</th>
<th>'. __( 'Height', 'woocommerce' ) .'</th>
<th>'. __( 'Width', 'woocommerce' ) .'</th>
<th>'. __( 'Depth', 'woocommerce' ) .'</th>
</tr>
</thead>
<tbody>';
foreach( $available_variations as $variation ){
// Get an instance of the WC_Product_Variation object
$product_variation = wc_get_product($variation['variation_id']);
$sale_price = $product_variation->get_sale_price();
if( empty( $sale_price ) ) $sale_price = __( '<em>(empty)</em>', 'woocommerce' );
$output .= '
<tr>
<td>'. $product_variation->get_formatted_name() .'</td>
<td>'. $product_variation->get_height() .'</td>
<td>'. $product_variation->get_width() .'</td>
<td>'. $product_variation->get_length() .'</td>
</tr>';
}
$output .= '
</tbody>
</table>';
echo $output;
}
}
Я сейчас переключился на использование $product_variation->get_name() .'
Кажется, это удаляет большую часть лишних данных.
Я думаю, что селектор _name
перетаскивает все имена атрибутов продукта;
Например;
Атрибут 1: АВТОМОБИЛЬ Атрибут 2: МАЛЕНЬКИЙ Атрибут 3: FORD
с использованием _name
возврат: CAR SMALL FORD
Я только хочу отобразить 2-й атрибут «МАЛЕНЬКИЙ»
Как я могу настроить таргетинг только на этот атрибут, используя _name?