Php Wordpress Woocommerce钩子Woocommerce_前_主内容不工作

Php Wordpress Woocommerce钩子Woocommerce_前_主内容不工作,php,wordpress,woocommerce,hook,Php,Wordpress,Woocommerce,Hook,我需要在Woocommerce类别页面中添加一些关于该类别的信息。我在theme functions.php中添加了以下代码,但它不起作用。甚至没有显示我用来调试钩子是否工作的第一个回音。我做错了什么 //Adiciona informações da categoria na página de categoria function brg_informacoes_de_categoria(){ echo 'it works!'; if(is_product_category

我需要在Woocommerce类别页面中添加一些关于该类别的信息。我在theme functions.php中添加了以下代码,但它不起作用。甚至没有显示我用来调试钩子是否工作的第一个回音。我做错了什么

//Adiciona informações da categoria na página de categoria

function brg_informacoes_de_categoria(){
    echo 'it works!';
    if(is_product_category()){

            $product_cats = wp_get_post_terms( get_the_ID(), 'product_cat' );
            $single_cat = array_shift( $product_cats ); 

            $field_cod = get_field('codigo', $single_cat->ID);
            $field_teatro = get_field('teatro', $single_cat->ID);
            $field_info = get_field('informações', $single_cat->ID);
            $field_cidade = get_field('cidade', $single_cat->ID);
            $field_estado = get_field('estado', $single_cat->ID);
            $field_inicio = get_field('inicio', $single_cat->ID);
            $field_termino = get_field('termino', $single_cat->ID);

            echo 'Código do Evento' . $field_cod . '<br >';
            echo 'Teatro' . $field_teatro . '<br >';
            echo 'Informações' . $field_info . '<br >';
            echo 'Cidade' . $field_cidade . '<br >';
            echo 'Estado' . $field_estado . '<br >';
            echo 'De ' . $field_inicio . ' a ' . $field_termino . '<br >';
            }

add_action('woocommerce_before_main_content','brg_informacoes_de_categoria', 2 );
//Adiciona informações da categoria na página de categoria
功能brg_informacoes_de_categoria(){
回音“它起作用了!”;
如果(是产品类别()){
$product_cats=wp_get_post_terms(获取_ID(),'product_cat');
$single_cat=数组_shift($product_cat);
$field\u cod=get\u field('codigo',$single\u cat->ID);
$field\u teatro=get\u field('teatro',$single\u cat->ID);
$field_info=get_field('informações',$single_cat->ID);
$field\u cidade=get\u field('cidade',$single\u cat->ID);
$field\u estado=get\u field('estado',$single\u cat->ID);
$field\u inicio=get\u field('inicio',$single\u cat->ID);
$field\u termino=get\u field('termino',$single\u cat->ID);
回声“Código do Evento”。$field_cod.。
; 回音“Teatro”。$field_Teatro.
; 回声“Informações.”$field_info.“
”; 回显“Cidade”。$field_Cidade.
; 回显“Estado.”$field_Estado.“
”; 回显“De”。$field\u inicio。“a”。$field\u termino.。
; } 添加行动(“在主要内容之前添加商业信息”,“分类信息”,2);
您似乎已经覆盖了主题中的woocommerce single-product.php模板,并且single-product.php文件缺少以下代码:

do_action( 'woocommerce_before_main_content' );
因此,您只需在主题的woocommerce目录中的single-product.php文件的某个位置添加这一行

另一个选项是删除single-product.php文件,然后WooCommerce将使用默认的single-product.php文件,其中包含此行

更新

您试图过早地挂接函数。请在附加函数时尝试使用优先级为10或更高的选项

为此,请更换以下行:

add_action('woocommerce_before_main_content','brg_informacoes_de_categoria', 2 );
以下是:

add_action('woocommerce_before_main_content','brg_informacoes_de_categoria', 10 );

谢谢你的回答,但我没有使用任何模板文件。我希望插入代码的钩子位于archive-category.php或任何其他类别模板中,这就是为什么我使用“if(is_product_category()){'。钩子在archive product.php的第23行。我理解。您尝试钩子函数太早了。在附加函数时尝试使用优先级10或更高。我编辑了上面的消息,向您展示了应该更改的内容。此外,代码中似乎缺少函数的右括号,就在添加操作之前n call。除了结束括号外,问题是主题包含一个没有钩子的woocommerce.php文件。在文件中包含钩子,并使用插件实现函数。现在可以使用了,谢谢!