Мне не совсем понятно, о чем вы спрашиваете. Вы часто ссылаетесь на блоки Gutenberg, но ссылаетесь на репозиторий WooCommerce, в котором нет блоков Gutenberg.
Но если я вас правильно понимаю, вы ищете шаблон PHP, который контролирует продукты , Вы можете найти в content-product.php
Вы увидите множество звонков на do_action
, который является ядром для перехватчиков WordPress, используемых в плагине development .
<li <?php wc_product_class( '', $product ); ?>>
<?php
/**
* Hook: woocommerce_before_shop_loop_item.
*
* @hooked woocommerce_template_loop_product_link_open - 10
*/
do_action( 'woocommerce_before_shop_loop_item' );
/**
* Hook: woocommerce_before_shop_loop_item_title.
*
* @hooked woocommerce_show_product_loop_sale_flash - 10
* @hooked woocommerce_template_loop_product_thumbnail - 10
*/
do_action( 'woocommerce_before_shop_loop_item_title' );
/**
* Hook: woocommerce_shop_loop_item_title.
*
* @hooked woocommerce_template_loop_product_title - 10
*/
do_action( 'woocommerce_shop_loop_item_title' );
/**
* Hook: woocommerce_after_shop_loop_item_title.
*
* @hooked woocommerce_template_loop_rating - 5
* @hooked woocommerce_template_loop_price - 10
*/
do_action( 'woocommerce_after_shop_loop_item_title' );
/**
* Hook: woocommerce_after_shop_loop_item.
*
* @hooked woocommerce_template_loop_product_link_close - 5
* @hooked woocommerce_template_loop_add_to_cart - 10
*/
do_action( 'woocommerce_after_shop_loop_item' );
?>
</li>
Если вы выполните поиск хуков действий, определенных в content-product.php
, вы найдете их, определенные в wc-template-hooks.php
. Хуки - это именованные действия, к которым добавляются функции. Например, если вы посмотрите на действие woocommerce_after_shop_loop_item
, то обнаружите, что к нему присоединены две функции.
add_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_product_link_close', 5 );
add_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 );
Функции woocommerce_template_loop_product_link_close
и woocommerce_template_loop_add_to_cart
определены в wc-template-functions.php
Вы можете создать совершенно новый файл content-product.php
в своей теме, создав файл в yourtheme/woocommerce/content-product.php
, однако при этом вы потеряете большую часть встроенной мощности и совместимости WooCommerce.
Лучше было бы удалить, а затем добавить новые действия в хук woocommerce_after_shop_loop_item
. Например, woocommerce_template_loop_product_link_close
в настоящее время определяется как:
function woocommerce_template_loop_product_link_close() {
echo '</a>';
}
Вы можете перезаписать это, выполнив это в файле functions.php
:
remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_product_link_close', 5 );
function custom_template_loop_product_link_close() {
echo 'Hello world!</a>';
}
add_action( 'woocommerce_after_shop_loop_item', 'custom_template_loop_product_link_close', 5 );
Надеюсь, это поможет.