Skip to content

Instantly share code, notes, and snippets.

View artikus11's full-sized avatar
🥕
Create plugins

Artem Abramovich artikus11

🥕
Create plugins
View GitHub Profile
@artikus11
artikus11 / functions.php
Last active February 23, 2023 13:29
Функция проверки существования товара на странице. Проверяет на шорткод, блок и шатные страницы архивов
function has_product(): array {
$has_product_page = is_shop() || is_product_category() || is_product_tag() || is_product();
global $post;
if ( ! $post ) {
return [ false, false, false ];
}
@artikus11
artikus11 / snippet-woo.php
Last active January 23, 2023 22:20
Woocommerce. Изменение HTML полей на странице оформления заказа (чекаут)
add_filter( 'woocommerce_form_field', 'art_change_woocommerce_form_field', 10, 4 );
/**
* Изменение хтмл полей
*
* @param $field
* @param $key
* @param $args
* @param $value
*
* @testedwith WooCommerce 7.0
function art_adding_attributes( $post_id, $xml_node ) {
// Ограничиваем работу сниппета нужным импортом
$import_id = ( $_GET['id'] ?? ( isset( $_GET['import_id'] ) ? $_GET['import_id'] : 'new' ) );
$attributes_from_string = [];
if ( ( '31' === $import_id || '26' === $import_id ) && $xml_node->dimensions ) {
$sep = '/';
<?php
class Blow_Roles {
public function __construct() {
$this->hooks();
}
@artikus11
artikus11 / snippet-woo.php
Created December 10, 2022 23:04
Подключение скриптов и стилей только на страницах WooCommerce
/**
* Подключение скриптов и стилей только на страницах WooCommerce
*
* @testedwith WooCommerce 7.0
* @verphp 7.4
* @author Artem Abramovich
*/
function art_connection_css_js_only_woocommerce_pages() {
if ( ! class_exists( 'Woocommerce' ) ) {
@artikus11
artikus11 / functions.php
Created August 16, 2022 11:35
Удаление всех миниатюр у отдельного типа записи
function delete_all_attachments_by_post_type() {
global $wpdb;
$attachments = $wpdb->get_results(
"SELECT meta_value as att_id
FROM $wpdb->postmeta
INNER JOIN $wpdb->posts
ON ($wpdb->posts.ID = $wpdb->postmeta.post_id AND $wpdb->posts.post_type = 'courses')
WHERE meta_key = '_thumbnail_id'"
@artikus11
artikus11 / webpack.config.js
Last active July 27, 2022 21:00
Конфиг Webpack под разработку темы для WordPress&WooCommerce
const path = require( 'path' );
const glob = require( 'glob' );
const defaultConfig = require( "@wordpress/scripts/config/webpack.config" );
const BrowserSyncPlugin = require( 'browser-sync-webpack-plugin' );
const MiniCssExtractPlugin = require( 'mini-css-extract-plugin' );
const CssMinimizerPlugin = require( "css-minimizer-webpack-plugin" );
const CopyPlugin = require( 'copy-webpack-plugin' );
const SpriteLoaderPlugin = require( 'svg-sprite-loader/plugin' );
const { hasBabelConfig } = require( '@wordpress/scripts/utils' );
const TerserPlugin = require( 'terser-webpack-plugin' );
@artikus11
artikus11 / snippet-woo.php
Created April 8, 2022 20:43
Скрытие методов доставки на корзине
/**
* Скрытие методов доставки на корзине
*
* @param $needs_shipping
*
* @return false|mixed
*
* @testedwith WooCommerce 6.1
* @author Artem Abramovich
*/
@artikus11
artikus11 / snippet-cf7.php
Last active January 31, 2022 09:59
Contact Form 7 подмена тела письма собственным шаблоном
add_action( 'wpcf7_before_send_mail', 'replace_email_body', 10, 3 );
/**
* @param WPCF7_ContactForm $contact_form
* @param bool $abort
* @param WPCF7_Submission $submission
*
* @return void
*/
function replace_email_body( $contact_form, $abort, $submission ): void {
/**
* Сортировка атрибутов в админке по алфавиту
*
* @param $attr
*
* @return array
*
* @testedwith WooCommerce 6.0
* @author Artem Abramovich
*/