При работе над проектом, бывает возникает необходимость добавить пользовательское изображение, которое будет связано с определенным атрибутом WooCommerce.
Этот удобный маленький фрагмент сделает именно это! Здесь использовали Advanced Custom Fields (ACF) и необходимо было интегрировать с ним.
<?php // Добавляет пользовательский тип правила. add_filter( 'acf/location/rule_types', function( $choices ){ $choices[ __("Other",'acf') ]['wc_prod_attr'] = 'WC Product Attribute'; return $choices; } ); // Добавляет пользовательские значения правил. add_filter( 'acf/location/rule_values/wc_prod_attr', function( $choices ){ foreach ( wc_get_attribute_taxonomies() as $attr ) { $pa_name = wc_attribute_taxonomy_name( $attr->attribute_name ); $choices[ $pa_name ] = $attr->attribute_label; } return $choices; } ); // Соответствие пользовательскому правилу. add_filter( 'acf/location/rule_match/wc_prod_attr', function( $match, $rule, $options ){ if ( isset( $options['taxonomy'] ) ) { if ( '==' === $rule['operator'] ) { $match = $rule['value'] === $options['taxonomy']; } elseif ( '!=' === $rule['operator'] ) { $match = $rule['value'] !== $options['taxonomy']; } } return $match; }, 10, 3 );
Сначала вставьте приведенный выше фрагмент в ваш файл темы functions.php.
Затем добавьте новую группу полей, используя ACF. Вы увидите новую опцию, чтобы выбрать атрибут продукта WC. Присвойте его выбранному атрибуту WooCommerce и добавьте свои обычные поля как обычно.
Вот и все! Теперь вы можете посетить Атрибуты продукта и увидеть настраиваемые поля, которые вы добавили в новую группу полей.
Мы надеемся, что это поможет вам! Если вы получили пользу от этой статьи, поделитесь ею в социальных сетях! 🙂