Вадим Фоминов | Создаю сайты на Wordpress
Open in Telegram
Про сайты со сложной структурой: интернет-магазин, сайт-каталог, блог, сайт-портфолио или личный кабинет любой сложности. Для связи: @vadimfominov
Show more1 643
Subscribers
No data24 hours
-47 days
-2030 days
Posts Archive
В карточках новостей лучше выделять заголовок новости большим размером шрифта и цветом. На изображениях выше хорошо видно для чего это делается.
Первая часть кода.
В functions.php прописываем:
add_action( 'woocommerce_before_shop_loop_item_title', 'bbloomer_show_sale_percentage_loop', 25 );
function bbloomer_show_sale_percentage_loop() {
global $product;
if ( ! $product->is_on_sale() ) return;
if ( $product->is_type( 'simple' ) ) {
$max_percentage = ( ( $product->get_regular_price() - $product->get_sale_price() ) / $product->get_regular_price() ) * 100;
} elseif ( $product->is_type( 'variable' ) ) {
$max_percentage = 0;
foreach ( $product->get_children() as $child_id )Скрыть поле с ценой на страницах оформления заказа и в корзине.
add_filter( 'woocommerce_variable_sale_price_html', 'businessbloomer_remove_prices', 9999, 2 );
add_filter( 'woocommerce_variable_price_html', 'businessbloomer_remove_prices', 9999, 2 );
add_filter( 'woocommerce_get_price_html', 'businessbloomer_remove_prices', 9999, 2 );
function businessbloomer_remove_prices( $price, $product ) {
if ( ! is_admin() ) $price = '';
return $price;
}remove_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_price', 10 );Цена вариативного товара будет отображаться по $min_price. Прописывается в functions.php:
add_filter( 'woocommerce_variable_price_html', 'bbloomer_variation_price_format_min', 9999, 2 );
function bbloomer_variation_price_format_min( $price, $product ) {
$prices = $product->get_variation_prices( true );
$min_price = current( $prices['price'] );
$max_price = end( $prices['price'] );
$min_reg_price = current( $prices['regular_price'] );
$max_reg_price = end( $prices['regular_price'] );
if ( $min_price !== $max_price || ( $product->is_on_sale() && $min_reg_price === $max_reg_price ) ) {
$price = 'From: ' . wc_price( $min_price ) . $product->get_price_suffix();
}
return $price;
}add_filter( 'woocommerce_sale_flash', 'bbloomer_rename_sale_badge', 9999 );
function bbloomer_rename_sale_badge() {
return '<span class="onsale">Свой_текст</span>';
}Устал скроллить одни и те же вакансии Frontend - разработчиков на hh? Не трать время — заходи в @JScript_jobs
Здесь ты найдешь:
— актуальные вакансии от топов IT-индустрии (Яндекс, Сбер, Intel) и стартапов, которых нет на крупных cервисах;
— зарплату от 400 тысяч и выше;
— достойные предложения для джунов, мидлов и сеньеров;
— предложения от зарубежных компаний с релокацией;
— стажировки и обучающий контент для повышения скиллов.
Цени себя и свое время — подписывайся на @JScript_jobs
remove_action( 'woocommerce_before_shop_loop_item_title', 'woocommerce_show_product_loop_sale_flash', 10 );
remove_action( 'woocommerce_before_single_product_summary', 'woocommerce_show_product_sale_flash', 10 );
add_filter( 'woocommerce_sale_flash', '__return_null' );Прописывается в functions.php:
add_filter( 'wc_add_to_cart_message_html', 'bbloomer_custom_add_to_cart_message' );
function bbloomer_custom_add_to_cart_message() {
$message = 'свой_текст_уведомления!' ;
return $message;
}Прописывается в functions.php:
add_filter( 'wc_add_to_cart_message_html', '__return_null' );add_filter( 'woocommerce_product_add_to_cart_text', 'bbloomer_change_select_options_button_text', 9999, 2 );
function bbloomer_change_select_options_button_text( $label, $product ) {
if ( $product->is_type( 'variable' ) ) {
return 'Свое_название_кнопки';
}
return $label;
}add_action( 'woocommerce_after_shop_loop_item', 'bbloomer_show_free_shipping_loop', 5 );
function bbloomer_show_free_shipping_loop() {
echo '<p class="shop-badge">Бесплатная доставка</p>';
}Никакие платные курсы больше не нужны — по этим 4 каналам можно освоить Frontend-разработку с нуля 👇
▪️ Senior Frontend — JS, HTML и CSS
▪️ Frontend Interview — как проходить собеседования
▪️ Web Craft — только Web-разработка
▪️ Frontender Libs — библиотеки для фронтендера
Вариации товара, которых нет в наличии, будут отображаться серым цветом в выпадающем списке.
Прописывается в functions.php:
add_filter( 'woocommerce_variation_is_active', 'bbloomer_grey_out_variations_out_of_stock', 10, 2 );
function bbloomer_grey_out_variations_out_of_stock( $is_active, $variation ) {
if ( ! $variation->is_in_stock() ) return false;
return $is_active;
}Показывает "Бесплатно" вместо нулевой цены.
Первая часть кода:
<?php
add_filter( 'woocommerce_get_price_html', 'bbloomer_price_free_zero', 9999, 2 );
function bbloomer_price_free_zero( $price, $product ) {
if ( $product->is_type( 'variable' ) ) {
$prices = $product->get_variation_prices( true );
$min_price = current( $prices['price'] );
if ( 0 == $min_price ) {
$max_price = end( $prices['price'] );
$min_reg_price = current( $prices['regular_price'] );
$max_reg_price = end( $prices['regular_price'] );
if ( $min_price !== $max_price ) {
$price = wc_format_price_range( 'FREE', $max_price );
$price .= $product->get_price_suffix();
} Показывает "Бесплатно" вместо нулевой цены.
Вторая часть кода:
elseif ( $product->is_on_sale() && $min_reg_price === $max_reg_price ) {
$price = wc_format_sale_price( wc_price( $max_reg_price ), 'FREE' );
$price .= $product->get_price_suffix();
}
else{
$price = 'FREE';
}
}
} elseif ( 0 == $product->get_price() ) {
$price = '<span class="woocommerce-Price-amount amount">FREE</span>';
}
return $price;
}
?>
Прописывается в functions.php.Repost from WP-Kama.ru
Идея: при регистрации Типа записи и Таксономии сразу указывать, какой шаблон будет использоваться для Архива, а какой для Записи, а также сколько выводить в этом шаблоне записей.
Реализация:
https://wp-kama.ru/note/podklyuchenie-shablonov-dlya-ctp-i-tax-pri-ih-registratsii
Благодаря такому подходу, вы можете при регистрации указать любой свой параметр, а потом в фильтрах registered_post_type/registered_taxonomy его применить, что делает работу с WordPress ещё удобнее!
get_permalink()
Получает URL записи.
the_permalink()
Выводит URL записи.
comments_number()
Выводит число комментариев записи.
edit_post_link()
Выводит ссылку (html) на редактирование поста.
the_date()
Выводит/получает дату публикации записи.
get_the_date()
Получает дату создания текущего поста.add_filter( 'woocommerce_product_single_add_to_cart_text', 'bbloomer_add_symbol_add_cart_button_single' );
function bbloomer_add_symbol_add_cart_button_single( $button ) {
$button_new = 'место_под_свой_символ-иконку' . $button;
return $button_new;
}the_title()
Выводит заголовок текущей записи.
the_title_attribute()
Выводит заголовок записи для атрибута html тега.
the_content()
Выводит контент записи.
the_excerpt()
Выводит отрывок записи, со вставкой в конце [...].
the_excerpt_rss()
Выводит отрывок (цитату) (для RSS).