Forwarded from WordPress Digest (Mikhail Kobzarev)
Как интегрировать пользовательские платежные шлюзы с блоком оформления заказа WooCommerce
В блоге Миши вы можете найти полное руководство по созданию платежного шлюза WooCommerce, но в последних версиях (начиная с 8.3) вы, наверное, уже заметили, что ваш пользовательский метод оплаты недоступен в блоке Checkout.
👉🏻 https://rudrastyh.com/woocommerce/checkout-block-payment-method-integration.html
#wordpress #woocommerce #development #gutenberg
🦄 WordPress Digest - Подписаться
В блоге Миши вы можете найти полное руководство по созданию платежного шлюза WooCommerce, но в последних версиях (начиная с 8.3) вы, наверное, уже заметили, что ваш пользовательский метод оплаты недоступен в блоке Checkout.
👉🏻 https://rudrastyh.com/woocommerce/checkout-block-payment-method-integration.html
#wordpress #woocommerce #development #gutenberg
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Быть Программистом
#JavaScript #PHP #Разработка_под_Gutenberg #Gutenberg #JavaScript #metaboxes #php #React #WordPress #видео_урок
Как добавить метабоксы и произвольные поля к постам в Гутенберге
Поля произвольных данных (метабоксы) служат для добавления ...
Как добавить метабоксы и произвольные поля к постам в Гутенберге
Поля произвольных данных (метабоксы) служат для добавления ...
🔥1
Forwarded from Быть Программистом
#WordPress_Codex #php #WordPress
WP_Query или get_posts(), что использовать для выборки постов на WordPress?
Создание динамических веб-сайтов WordPress во многом зависи...
WP_Query или get_posts(), что использовать для выборки постов на WordPress?
Создание динамических веб-сайтов WordPress во многом зависи...
💩1
Forwarded from CodeMode | Программирование
📕 jаvascript. Дополнительные уроки для начинающих, Дронов В.
• В книге 20 иллюстрированных уроков, более 20 практических упражнений на тему программирования веб-сценариев и 18 заданий для самостоятельной работы. Простым языком, кратко, наглядно рассказано о новых программных инструментах, появившихся в последние годы в языке jаvascript. Описаны новый синтаксис объявления классов, промисы, асинхронные функции, итераторы, генераторы и модули.
• Рассказано о новом загрузчике файлов, встроенной в веб-обозреватель СУБД, HTML-компонентах и шаблонах, средствах для захвата видео, наложении эффектов на звук. Рассмотрены технологии WebSocket для программирования веб-чата и WebRTC для создания службы видеотелефонии. Описаны прогрессивные веб-приложения (PWA), посредники и программируемый кэш, вывод всплывающих оповещений и установка PWA в операционной системе.
🧷Скачать бесплатно.
2022 #RU
• В книге 20 иллюстрированных уроков, более 20 практических упражнений на тему программирования веб-сценариев и 18 заданий для самостоятельной работы. Простым языком, кратко, наглядно рассказано о новых программных инструментах, появившихся в последние годы в языке jаvascript. Описаны новый синтаксис объявления классов, промисы, асинхронные функции, итераторы, генераторы и модули.
• Рассказано о новом загрузчике файлов, встроенной в веб-обозреватель СУБД, HTML-компонентах и шаблонах, средствах для захвата видео, наложении эффектов на звук. Рассмотрены технологии WebSocket для программирования веб-чата и WebRTC для создания службы видеотелефонии. Описаны прогрессивные веб-приложения (PWA), посредники и программируемый кэш, вывод всплывающих оповещений и установка PWA в операционной системе.
🧷Скачать бесплатно.
2022 #RU
Forwarded from Миша Рудрастых и WordPress
Новый курс!🎙 На этот раз бесплатный! Ну хорошо, стоимость курса – лайк под видосами 😁
https://youtube.com/playlist?list=PLQcI8rUOscv1gGwzjTHIUPdNTsKOd9Vwh&si=0HlJPOkrRvWx4suY
Решил рассмотреть конкретно разработку блочных тем под FSE (хотя мы так уже не говорим, для Site Editor короче). Ничего супер-сложного – по сути создаём тему на основе готовой не-блочной темы, и потом в последующих видео рассматриваю более детально конфигурацию в theme.json.
Ах да, английский язык, но думаю с моим произношением вы точно разберётесь.
Как думаете, каких видео не хватает в этом курсе-плейлисте? Я бы дозаписал, пока ютуб меня ещё не начал бесить.
https://youtube.com/playlist?list=PLQcI8rUOscv1gGwzjTHIUPdNTsKOd9Vwh&si=0HlJPOkrRvWx4suY
Решил рассмотреть конкретно разработку блочных тем под FSE (хотя мы так уже не говорим, для Site Editor короче). Ничего супер-сложного – по сути создаём тему на основе готовой не-блочной темы, и потом в последующих видео рассматриваю более детально конфигурацию в theme.json.
Ах да, английский язык, но думаю с моим произношением вы точно разберётесь.
Как думаете, каких видео не хватает в этом курсе-плейлисте? Я бы дозаписал, пока ютуб меня ещё не начал бесить.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Автопостинг NextScripts SNAP: Хештег пользовательской таксономии
#NextScriptsSNAP #Wordpress #Автопостинг #ПлагиныWordpress
❓Задача. Для автопостинга в соцсети используется плагин «NextScripts Social Networks Auto-Poster». В настройках шаблона публикации можно задать хештеги (категории, метки). Появилась необходимость выводить хештег пользовательской таксономии, но такой функции плагином не предусмотрено.
✅ Решение. Каких-то хуков не нашел, но получилось решить добавив небольшие куски кода. Изменить нужно будет всего 3 файла плагина:
/inc/nxs_functions.php
/inc/nxs_functions_wp.php
/inc/nxs_functions_adv.php
Делаем по аналогии с категориями и метками постов — Код #1, где добавляем обработку пользовательской таксономии ‘mytaxonomy’.
💾 Смотреть код
#NextScriptsSNAP #Wordpress #Автопостинг #ПлагиныWordpress
❓Задача. Для автопостинга в соцсети используется плагин «NextScripts Social Networks Auto-Poster». В настройках шаблона публикации можно задать хештеги (категории, метки). Появилась необходимость выводить хештег пользовательской таксономии, но такой функции плагином не предусмотрено.
✅ Решение. Каких-то хуков не нашел, но получилось решить добавив небольшие куски кода. Изменить нужно будет всего 3 файла плагина:
/inc/nxs_functions.php
/inc/nxs_functions_wp.php
/inc/nxs_functions_adv.php
Делаем по аналогии с категориями и метками постов — Код #1, где добавляем обработку пользовательской таксономии ‘mytaxonomy’.
💾 Смотреть код
👍1🔥1
В Wordpress-плагине не работает перевод на русский
#Wordpress #ПлагиныWordpress
❓Задача. Плагин в WordPress не подхватывает перевод на русский язык, хотя файлы перевода у него есть.
✅ Решение. Если у плагина уже есть файлы перевода my-plugin-ru_RU.po и my-plugin-ru_RU.mo, но они не применяются, то можно сделать следующее:
1 - В файле wp-config.php добавить строчку define ('WPLANG', 'ru_RU');.
2 - Скопировать из папки плагина файлы с переводом my-plugin-ru_RU.po и my-plugin-ru_RU.mo в папку /wp-content/languages/plugins/.
3 - Если названия файлов отличаются от названия папки плагина, что в данном случае скорее всего, то файлы нужно переименовать соответственно. Например, папка плагина «my-plugin», то и копируемые файлы должны быть «my-plugin-ru_RU.mo».
💾 Статья
#Wordpress #ПлагиныWordpress
❓Задача. Плагин в WordPress не подхватывает перевод на русский язык, хотя файлы перевода у него есть.
✅ Решение. Если у плагина уже есть файлы перевода my-plugin-ru_RU.po и my-plugin-ru_RU.mo, но они не применяются, то можно сделать следующее:
1 - В файле wp-config.php добавить строчку define ('WPLANG', 'ru_RU');.
2 - Скопировать из папки плагина файлы с переводом my-plugin-ru_RU.po и my-plugin-ru_RU.mo в папку /wp-content/languages/plugins/.
3 - Если названия файлов отличаются от названия папки плагина, что в данном случае скорее всего, то файлы нужно переименовать соответственно. Например, папка плагина «my-plugin», то и копируемые файлы должны быть «my-plugin-ru_RU.mo».
💾 Статья
👍1👌1
Удаление ссылки из активного пункта меню Wordpress
#Wordpress #WpCraftTop
❓Задача. Необходимо из меню убрать ссылку активного пункта, т.к. если мы находимся на странице из меню, то выходит что страница ссылается сама на себя. Т.е. нет необходимости выводить этот пункт, как ссылку.
✅ Решение 1. Используем хук-фильтр wp_nav_menu Код №1 в functions.php.
💾 Статья
#Wordpress #WpCraftTop
❓Задача. Необходимо из меню убрать ссылку активного пункта, т.к. если мы находимся на странице из меню, то выходит что страница ссылается сама на себя. Т.е. нет необходимости выводить этот пункт, как ссылку.
✅ Решение 1. Используем хук-фильтр wp_nav_menu Код №1 в functions.php.
function wpcraft_no_link_current_page($menu) {
return preg_replace('%((current_page_item|current-menu-item)[^<]+)[^>]+>([^<]+)</a>%', '$1<span>$3</span>', $menu);
}
add_filter('wp_nav_menu', 'wpcraft_no_link_current_page');
💾 Статья
Forwarded from Честное SEO
#полезное
Боремся с убивабщими хост ботами🚫
⚠️Решил написать, потому что reg.ru многим начал закрывать сайты через .htaccess после полчища ботов, выгуливаемых на сайте. Мотивация ясна - трата процессорного времени сверх лимита хостинга на постоянной основе.
✅ Чтобы убрать большую часть прямых переходов от ботов(переходов по ссылкам, из социальных сетей и т.д.) в .htaccess вашего сайта нужно прописать 3 таких строчки:
RewriteEngine On
RewriteCond %{REMOTE_ADDR} ^.*:.*$
RewriteRule ^(.*)$ - [F,L]
🔍 После этого сервер будет проверять присутствует ли в ip адресе “:”, что является показателем ipv6. Если да, то 403 Forbidden, если нет открывается сайт. Важно, что таким образом отключив вы можете потерять часть юзеров.
⚠️ ВАРИАНТ ЕЩЕ ЛУЧШЕ БЕЗ ПОТЕРИ ЮЗЕРОВ - ОТКЛЮЧИТЬ У СЕРВЕРА IPv6, то есть убрать AAAA запись на ipv6, то приоритет отдаваться будет ipv4 и по идее все юзеры смогут пройти на сайт, а вот боты нет.
Боремся с убивабщими хост ботами
⚠️Решил написать, потому что reg.ru многим начал закрывать сайты через .htaccess после полчища ботов, выгуливаемых на сайте. Мотивация ясна - трата процессорного времени сверх лимита хостинга на постоянной основе.
RewriteEngine On
RewriteCond %{REMOTE_ADDR} ^.*:.*$
RewriteRule ^(.*)$ - [F,L]
Please open Telegram to view this post
VIEW IN TELEGRAM
Вывод виджета поиска темы Woodmart в шаблоне
#Woodmart #Wordpress
Вывести виджет поиска темы Woodmart за пределами сайдбара, непосредственно в коде шаблона страницы:
💾 Статья
#Woodmart #Wordpress
Вывести виджет поиска темы Woodmart за пределами сайдбара, непосредственно в коде шаблона страницы:
# Виджет поиска в Woodmart
if (function_exists('the_widget')) {
the_widget('WOODMART_Widget_Search', array(
'title' => 'Поиск товаров', // Заголовок виджета
'post_type' => 'product', // Тип постов для поиска
'number' => 4, // Количество товаров для показа
'price' => 1, // Показать цену
'thumbnail' => 1, // Показать миниатюры
'categories' => 1 // Показать категории
));
}
💾 Статья
Шорткоды в виджетах WordPress
#Wordpress
⁉️ По умолчанию в виджетах Wodpress не поддерживаются шорткоды. Чтобы добавить такую возможность можно использовать фильтры или сделать свой пользовательский виджет с поддержкой шорткодов.
💾 Пользовательский виджет с поддержкой шорткодов
#Wordpress
⁉️ По умолчанию в виджетах Wodpress не поддерживаются шорткоды. Чтобы добавить такую возможность можно использовать фильтры или сделать свой пользовательский виджет с поддержкой шорткодов.
# Обработка шорткодов в виджетах
function qfurs_enable_shortcodes_in_widgets() {
// Поддержка шорткодов в старых текстовых виджетах
add_filter('widget_text', 'do_shortcode');
// Поддержка шорткодов в новых текстовых виджетах
add_filter('widget_text_content', 'do_shortcode');
// Поддержка шорткодов в виджетах блока HTML
add_filter('widget_text_widget', 'do_shortcode');
}
add_action('widgets_init', 'qfurs_enable_shortcodes_in_widgets');
💾 Пользовательский виджет с поддержкой шорткодов
💻 Корзина и Оформление заказа на одной странице в Woocommerce
#WordPress #Woocommerce
⁉️ Необходимо было совместить страницы Корзины и Оформления заказа. По сути на странице нужно вывести три основных блока: Таблица товаров (как в корзине), Детали заказа и Заказ. Самая большая проблема заключалась в том, что по макету на странице две колонки — слева таблица товаров и под ней Детали заказа, а справа — блок Заказ. Но в шаблонах Woo Таблица с товарами это одна форма, а Детали заказа с блоком Заказ — другая. И вынести Детали заказа из своей формы и вставить куда хочешь — не получится.
✅ В решении предлагаю скопировать шаблон формы заказа и добавить в него код из формы корзины + добавить скрипт который будет перемещать нужный блок и передавать данные.
💾 Скрипт
#WordPress #Woocommerce
⁉️ Необходимо было совместить страницы Корзины и Оформления заказа. По сути на странице нужно вывести три основных блока: Таблица товаров (как в корзине), Детали заказа и Заказ. Самая большая проблема заключалась в том, что по макету на странице две колонки — слева таблица товаров и под ней Детали заказа, а справа — блок Заказ. Но в шаблонах Woo Таблица с товарами это одна форма, а Детали заказа с блоком Заказ — другая. И вынести Детали заказа из своей формы и вставить куда хочешь — не получится.
✅ В решении предлагаю скопировать шаблон формы заказа и добавить в него код из формы корзины + добавить скрипт который будет перемещать нужный блок и передавать данные.
💾 Скрипт
💻 Специальные символы HTML
#вебмастер #Woo #HTML #сайты #Шпаргалки
©| 🔍 | ☎️ | ⌛️ | ✉️ | 🔥 | 🔔 | 🔒 | ❄️ | ★ | 💳 | ⏰
💾 Вся таблица
#вебмастер #Woo #HTML #сайты #Шпаргалки
©| 🔍 | ☎️ | ⌛️ | ✉️ | 🔥 | 🔔 | 🔒 | ❄️ | ★ | 💳 | ⏰
💾 Вся таблица
💻 Вывод постов WP на странице пользовательского типа записи с пагинацией
#WordPress #сайты
⁉️ Задача. Есть стандартные записи WP и есть пользовательский тип записей 'selection'. В шаблоне single-selection.php выводим список стандартных записей, исходя из настроек кастомного поста. Проблема со страницами пагинации — при переходе на /my-page/page/2/ перенаправляло на первую страницу.
✅ Решение.
💾 Подробнее
#WordPress #сайты
⁉️ Задача. Есть стандартные записи WP и есть пользовательский тип записей 'selection'. В шаблоне single-selection.php выводим список стандартных записей, исходя из настроек кастомного поста. Проблема со страницами пагинации — при переходе на /my-page/page/2/ перенаправляло на первую страницу.
✅ Решение.
/* functions.php */
function qfurs_fix_request_redirect( $request ) {
if ( isset( $request->query_vars['post_type'] )
&& 'selection' === $request->query_vars['post_type']
&& true === $request->is_singular
&& - 1 == $request->current_post
&& true === $request->is_paged ) {
add_filter( 'redirect_canonical', '__return_false' );
}
return $request;
}
add_action( 'parse_query', 'qfurs_fix_request_redirect' );
💾 Подробнее
👍1
##WordPress #сайты #CloudFlare
⁉ Задача. Сайт на WordPress работает подключили к CloudFlare и перестал работать доступ к админке (/wp-admin/).
✅ Решение 1. В моем случае сработала установка плагина Flexible SSL for CloudFlare (One Dollar Plugin).
✅ Решение 2. Нашел в интернете решение, но мне не помогло. Заключается в том чтобы настроить в Cloudflare исключения для страниц админки.
Рекомендуется настроить правило страницы, чтобы исключить раздел администратора CMS из Cloudflare.
Сделайте следующее в интерфейсе правила страницы (в качестве примера мы будем использовать раздел администратора WordPress):
Перейдите в приложение правила страницы Cloudflare: Rules — Page Rules.
Введите URL-адрес для раздела администратора в следующем формате: example.com/wp-admin/
Поставьте * перед и после URL-адреса, чтобы он читался как example.com/wp-admin/.
Для «Cache Level» (Уровня кэша) выберите «Bypass» (Обойти).
Для «Performance» (Производительность) «Disable Performance» выберите (Отключить производительность).
Для «Security» (безопасности) выберите «Disable Security» (Отключить безопасность).
Сохраните правило
⁉ Задача. Сайт на WordPress работает подключили к CloudFlare и перестал работать доступ к админке (/wp-admin/).
✅ Решение 1. В моем случае сработала установка плагина Flexible SSL for CloudFlare (One Dollar Plugin).
✅ Решение 2. Нашел в интернете решение, но мне не помогло. Заключается в том чтобы настроить в Cloudflare исключения для страниц админки.
Рекомендуется настроить правило страницы, чтобы исключить раздел администратора CMS из Cloudflare.
Сделайте следующее в интерфейсе правила страницы (в качестве примера мы будем использовать раздел администратора WordPress):
Перейдите в приложение правила страницы Cloudflare: Rules — Page Rules.
Введите URL-адрес для раздела администратора в следующем формате: example.com/wp-admin/
Поставьте * перед и после URL-адреса, чтобы он читался как example.com/wp-admin/.
Для «Cache Level» (Уровня кэша) выберите «Bypass» (Обойти).
Для «Performance» (Производительность) «Disable Performance» выберите (Отключить производительность).
Для «Security» (безопасности) выберите «Disable Security» (Отключить безопасность).
Сохраните правило
Как добавить администратора через базу данных сайта на Wordpress
#Wordpress
Два способа: через sql-запрос и в ручную, добавив новые строки в таблицы wp_users и wp_usermeta.
1. Через sql-запрос создать пользователя (wp_users) и выдать права админа (wp_usermeta). ID пользователя (в примере — 77) нужно задать уникальное:
2. Вручную добавить админа в БД WP сайта:
Далее
#Wordpress
Два способа: через sql-запрос и в ручную, добавив новые строки в таблицы wp_users и wp_usermeta.
1. Через sql-запрос создать пользователя (wp_users) и выдать права админа (wp_usermeta). ID пользователя (в примере — 77) нужно задать уникальное:
INSERT INTO `databasename`.`wp_users` (`ID`, `user_login`, `user_pass`, `user_nicename`, `user_email`, `user_url`, `user_registered`, `user_activation_key`, `user_status`, `display_name`) VALUES ('77', 'mylogin', MD5('mypassword'), 'My Name', 'myemail@domain.com', 'http://www.mysite.com/', '2011-06-07 00:00:00', '', '0', 'My Name');
INSERT INTO `databasename`.`wp_usermeta` (`umeta_id`, `user_id`, `meta_key`, `meta_value`) VALUES (NULL, '77', 'wp_capabilities', 'a:1:{s:13:"administrator";s:1:"1";}');
INSERT INTO `databasename`.`wp_usermeta` (`umeta_id`, `user_id`, `meta_key`, `meta_value`) VALUES (NULL, '77', 'wp_user_level', '10');
2. Вручную добавить админа в БД WP сайта:
Далее
Как отправить форму со страницы без настройки на сервере
#HTML #Form
🔴 Отправить данные формы из HTML нельзя, нужно настраивать обработку отправку на сервере (обычно через php). Это требует некоторых навыков, а так же могут быть сложности на самом хостинге.
🟢 Бесплатное решение через API:
1. Перейти на https://web3forms.com.
2. Создать ключ доступа.
3. На почту придет ключ.
4. Форме задаем
5. Создать скрытое поле с access_key и указываем в нем ключ.
💾 https://wpcraft.top/html-forma-otpravka-formy-bez-php/
#HTML #Form
🔴 Отправить данные формы из HTML нельзя, нужно настраивать обработку отправку на сервере (обычно через php). Это требует некоторых навыков, а так же могут быть сложности на самом хостинге.
🟢 Бесплатное решение через API:
1. Перейти на https://web3forms.com.
2. Создать ключ доступа.
3. На почту придет ключ.
4. Форме задаем
action="https://api.web3forms.com/submit" method="POST"
5. Создать скрытое поле с access_key и указываем в нем ключ.
💾 https://wpcraft.top/html-forma-otpravka-formy-bez-php/
<form id="subscribe" action="https://api.web3forms.com/submit" method="POST">
<input type="hidden" name="access_key" value="xxxx-xxxx-xxxx-xxxx-xxxx">
<input type="checkbox" name="botcheck" class="hidden" style="display: none;">
<input type="hidden" name="redirect" value="https://mywebsite.com/thanks.html">
<input type="email" id="email" class="input input-email" name="email" required>
<button type="submit">Подписаться</button>
</form>
Экспорт мета-тегов title и description Yoast SEO категории товаров с WP All Export
#WordPress #YoastSEO #SEO
❓ Требуется с помощью плагина WP All Export экспортировать категории товаров вместе с мета-тегами заголовка и описания, которые прописаны в плагине Yoast SEO. Проблема в том, что при настройке шаблона экспорта нет таких полей для таксономий (а в товарах есть).
✅ Чтобы добавить в экспорт значения полей title и description из Yast SEO, нужно добавить поле и обработать результат php-функцией (Изображение 1):
- Добавить поле Add field.
- В «Select a field to export» выбрать Term ID.
- Включить «Экспорт значения, возвращаемого PHP функцией» и добавить название функции 'yoast_wpseo_title' (Код #1).
- В «Function Editor» добавляем функции из Кода №1, сохраняем функции. В этом поле функции хранятся глобально, нужно только выше использовать название необходимой. Т.е. при создании другого поля эти функции уже будут.
- Сохранить поле — «Save».
💾 Подробнее
#WordPress #YoastSEO #SEO
❓ Требуется с помощью плагина WP All Export экспортировать категории товаров вместе с мета-тегами заголовка и описания, которые прописаны в плагине Yoast SEO. Проблема в том, что при настройке шаблона экспорта нет таких полей для таксономий (а в товарах есть).
✅ Чтобы добавить в экспорт значения полей title и description из Yast SEO, нужно добавить поле и обработать результат php-функцией (Изображение 1):
- Добавить поле Add field.
- В «Select a field to export» выбрать Term ID.
- Включить «Экспорт значения, возвращаемого PHP функцией» и добавить название функции 'yoast_wpseo_title' (Код #1).
- В «Function Editor» добавляем функции из Кода №1, сохраняем функции. В этом поле функции хранятся глобально, нужно только выше использовать название необходимой. Т.е. при создании другого поля эти функции уже будут.
- Сохранить поле — «Save».
💾 Подробнее
WordPress плагин автопостинга в Вконтакте: VK Auto Poster
💾 https://wpcraft.top/wordpress-plagin-avtopostinga-v-vkontakte-vk-auto-poster/
Необходимо было решение для автопостинга в ВК из сайта на WordPress вместо «NextScripts SNAP», т.к. он не работает для новых приложений ВК.
#wordpress #автопостинг #вконтакте #wpплагины
💾 https://wpcraft.top/wordpress-plagin-avtopostinga-v-vkontakte-vk-auto-poster/
Необходимо было решение для автопостинга в ВК из сайта на WordPress вместо «NextScripts SNAP», т.к. он не работает для новых приложений ВК.
#wordpress #автопостинг #вконтакте #wpплагины