Вадим Фоминов | Создаю сайты на Wordpress
1.53K subscribers
233 photos
5 videos
15 files
112 links
Про сайты со сложной структурой: интернет-магазин, сайт-каталог, блог, сайт-портфолио или личный кабинет любой сложности.

Для связи: @vadimfominov
Download Telegram
💡 Как настроить передачу чекбоксов из Contact Form 7 в Битрикс24 (Bitrix24). Для этого необходимо передать значение чекбокса в скрытый input CF7 и уже это поле передать в Bitrix24.

Эту задачу можно решить различными способами, в данном примере делаем это через js + с помощью плагина.
в function.php
// Подключение WooCommerce
if (class_exists("WooCommerce")) {
    require get_template_directory() . "/functions/woocommerce.php";
}

в functions/woocommerce.php
function theme_name_woocommerce_setup()
{
    add_theme_support(
        "woocommerce",
        [
// размер thumbnail
            "thumbnail_image_width" => 150,
// размер изображений товара 
            "single_image_width"    => 300,
// параметры вывода товаров на страницах архивов 
            "product_grid"          => [
                "default_rows"      => 3,
                "min_rows"          => 1,
                "default_columns"   => 4,
                "min_columns"       => 1,
                "max_columns"       => 6,
            ],
        ]
    );
    add_theme_support("wc-product-gallery-zoom");
    add_theme_support("wc-product-gallery-lightbox");
    add_theme_support("wc-product-gallery-slider");
}
add_action("after_setup_theme", "theme_name_woocommerce_setup");
💡 Отключение стилей WooCommerce по умолчанию

add_filter("woocommerce_enqueue_styles", "__return_empty_array");
⚡ Отключим стили и скрипты с помощью wp_dequeue_script() на всех страницах, кроме страниц магазина.

add_action("wp_enqueue_scripts", "wc_styles_scripts", 99);
function wc_styles_scripts()
{
    if (function_exists("is_woocommerce")) {
        if (!is_woocommerce()
&& !is_cart()
&& !is_checkout()
&& !is_account_page()) {
            wp_dequeue_style("woocommerce-general");
            wp_dequeue_style("evolution-woostyles");
            wp_dequeue_script("wc_price_slider");
            wp_dequeue_script("wc-single-product");
            wp_dequeue_script("wc-add-to-cart");
            wp_dequeue_script("wc-cart-fragments");
            wp_dequeue_script("wc-checkout");
        }
    }
}
if (is_woocommerce() && (is_single() || is_page())) {
    # Товар
}

if (is_tax("product_cat")) {
    # Категория / Подкатегория
}

if (is_tax("product_tag")) {
    # Метка
}

if (is_account_page()) {
    # Личный кабинет
}

if (is_cart()) {
    # Корзина
}

if (is_checkout()) {
    # Оформление заказа
}
👉 single_term_title(); - вывод заголовка
👉 $cat_id = get_queried_object()->term_id; - получаем id текущей категории
👉 $categories = get_the_terms($post->ID, "product_cat"); - получаем категории текущего товара
⚡ По умолчанию список категорий текущего товара выводится через запятую.

echo wc_get_product_category_list($product->get_id());
# вывод категорий товара
Тут написано как создать новый тип записи, а какой файл отвечает за отображения каждой записи напишу ниже 👇👇

single-{post_type}.php
single.php
singular.php
index.php

и в исключительных случаях можно создать
single-{post_type}-{post_name}.php, но это прям если очень индивидуально подходить к каждому посту, что бывает редко.
Чтобы скрыть необходимый пункт меню в админке, добавьте следующий код в functions.php

add_action("admin_menu", "remove_menus");
function remove_menus() {
    remove_menu_page("index.php");  
# Консоль
    remove_menu_page("edit.php");  
# Записи
    remove_menu_page("edit-comments.php");
# Комментарии
    remove_menu_page("edit.php?post_type=page");  
# Страницы
    remove_menu_page("upload.php");              
# Медиафайлы
    remove_menu_page("themes.php");              
# Внешний вид
    remove_menu_page("plugins.php");              
# Плагины
    remove_menu_page("users.php");                
# Пользователи
    remove_menu_page("tools.php");                
# Инструменты
    remove_menu_page("options-general.php");      
# Параметры
}
👍1
Чтобы изменить стандартный порядок пунктов меню в админке на произвольный, необходимо лишь переставить пункты местами в следующем коде.

if (is_admin()) {
    add_filter("custom_menu_order", "__return_true");
# включаем ручную сортировку
    add_filter("menu_order", "custom_menu_order");
# ручная сортировка
    function custom_menu_order($menu_order)
    {
        if (!$menu_order) return true;
        return array(
            "index.php",                    
# Консоль
            "edit.php",                      
# Записи
            "edit-comments.php",              
# Комментарии
            "separator1",                    
# ~ Отступ ~
            "edit.php?post_type=page",        
# Страницы
            "edit.php?post_type=reviews",    
# Отзывы
            "edit.php?post_type=stocks",    
# Акции
            "edit.php?post_type=works",      
# Работы клиники
        );
    }
}
Убираем поле "Очистить" на странице вариативного товара 😎 

В functions.php прописываем:
add_filter( 'woocommerce_reset_variations_link', '__return_empty_string', 9999 );
💡 Добавляем шорткод прямо в верстке в произвольном месте <?php echo do_shortcode('[YOUR-SHORTCODE-NAME/TAG]'); ?>
👍 Чтобы в вариативных товарах не выводилось количество оставшихся товаров, в functions.php прописываем:
add_filter( 'woocommerce_reset_variations_link', '__return_empty_string', 9999 );
В .htaccess после строки # END WordPress, дописываем:

php_value upload_max_filesize 999M
php_value post_max_size 999M
php_value memory_limit 999M
php_value max_execution_time 300
php_value max_input_time 300
🔥1
В functions.php прописываем:
add_filter( 'avatar_defaults', 'setnew_gravatar' );
 
function setnew_gravatar ($avatar_defaults) {
$myavatar = 'ссылка на аватар';
$avatar_defaults[$myavatar] = "Новый аватар";
return $avatar_defaults;
}    

Настройки => обсуждение => аватар по умолчанию.
<?php echo($wp_version); ?> - вернет номер версии ВП.
<?php get_header(); ?>
header.php.

<?php get_template_part('file'); ?>
file.php

<?php get_search_form(); ?>
Форма Поиска searchform.php

<?php comments_template(); ?>
Шаблон Комментариев comments.php

<?php get_sidebar(); ?>
sidebar.php

<?php get_footer(); ?>
footer.php
<?php bloginfo('name'); ?>
Название сайта.

<?php bloginfo('description'); ?>
Короткое описание сайта.

<?php bloginfo('template_url'); ?>
URL Темы: get_template_directory().

<?php bloginfo('template_directory'); ?>
URL Темы: get_template_directory().

<?php bloginfo('stylesheet_directory'); ?>
URL Темы: get_stylesheet_directory_uri().

<?php bloginfo('stylesheet_url'); ?>
URL файла темы style.css: get_stylesheet_uri().

<?php bloginfo('charset'); ?>
Кодировка сайта.

<?php bloginfo('html_type'); ?>
Content-Type страницы: text/html.

<?php bloginfo('language'); ?>
Локальный язык сайта.

<?php bloginfo('version'); ?>
Версия WordPress.

<?php bloginfo('rss2_url '); ?>
URL фида: /feed.

<?php bloginfo('comments_rss2_url'); ?>
URL фида комментов: /comments/feed.

<?php bloginfo('admin_email'); ?>
E-mail Админа.
<?php bloginfo('pingback_url'); ?>
URL уведомлений на файл xmlrpc.php.

<?php bloginfo('rdf_url'); ?>
URL RDF/RSS 1.0 фида (/feed/rfd).

<?php bloginfo('rss_url'); ?>
URL RSS 0.92 фида (/feed/rss).

<?php bloginfo('atom_url '); ?>
URL Atom фида (/feed/atom).

<?php bloginfo('url'); ?>
home_url().

<?php bloginfo('wpurl'); ?>
site_url().
Код меняет название у кнопки "Добавить в корзину". В functions.php прописываем:

<?php

add_filter( 'woocommerce_product_single_add_to_cart_text', 'woocommerce_custom_single_add_to_cart_text' ); function woocommerce_custom_single_add_to_cart_text() { return __( 'Название_Кнопки', 'woocommerce' ); }