@Suleimanov_Ismar

Woocommerce — Как отобразить цену вариативного товара?

Здравствуйте всем,
Пожалуйста подскажите как сделать так чтобы возле каждого выбора вариации товара отображалась его цена?
5ef75d04254d2894545472.png

Какой хук за этого отвечает? Может вы уже сталкивались с таким?
Желаемый результат: "Название вариации: Цена"
  • Вопрос задан
  • 369 просмотров
Решения вопроса 1
@Suleimanov_Ismar Автор вопроса
Решение, вдруг кому понадобится:
add_filter( 'woocommerce_variation_option_name', 'display_price_in_variation_option_name' );
function display_price_in_variation_option_name( $term ) {
	global $wpdb, $product;

	if ( empty( $term ) ) return $term;
	if ( empty( $product->id ) ) return $term;

	$id = $product->get_id();

	$result = $wpdb->get_col( "SELECT slug FROM {$wpdb->prefix}terms WHERE name = '$term'" );

	$term_slug = ( !empty( $result ) ) ? $result[0] : $term;

	$query = "SELECT postmeta.post_id AS product_id
				FROM {$wpdb->prefix}postmeta AS postmeta
					LEFT JOIN {$wpdb->prefix}posts AS products ON ( products.ID = postmeta.post_id )
				WHERE postmeta.meta_key LIKE 'attribute_%'
					AND postmeta.meta_value = '$term_slug'
					AND products.post_parent = $id";

	$variation_id 	= $wpdb->get_col( $query );
	$parent 		= wp_get_post_parent_id( $variation_id[0] );

	// print_r($term);
	if ( $parent > 0 ) {
		$_product = new WC_Product_Variation( $variation_id[0] );
		return "<div class='comp_name'>".$term.'</div>
				<div class="com_price">(' . wp_kses( woocommerce_price( $_product->get_price() ), array() ) . ')</div>';
	}
	return $term;

}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы