woocommerce 股票通知优先级

woocommerce stock notification priority

我正在尝试安排产品摘要的顺序,使价格出现在库存通知之后,库存通知出现在简短描述之后。我知道 content-single-product.php

中定义的优先级
/**
         * woocommerce_single_product_summary hook.
         *
         * @hooked woocommerce_template_single_title - 5
         * @hooked woocommerce_template_single_rating - 10
         * @hooked woocommerce_template_single_price - 10
         * @hooked woocommerce_template_single_excerpt - 20
         * @hooked woocommerce_template_single_add_to_cart - 30
         * @hooked woocommerce_template_single_meta - 40
         * @hooked woocommerce_template_single_sharing - 50
         * @hooked WC_Structured_Data::generate_product_data() - 60
         */
        do_action( 'woocommerce_single_product_summary' );

但是,我没有看到 stock 挂钩的位置。我在文档或代码中找不到它。如果我知道 stock 模板的钩子和优先级,我就可以解决我的问题。我试过了

remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_stock', 30 );

没有结果。谁能帮忙?谢谢

我终于想通了。库存状态被硬编码到模板中,因此您必须首先将其从子主题的 simple.php 和 variation.php 中删除。 (还有 grouped.php,但我不使用分组产品,所以我不需要更新该模板。)

从 variation.php

中删除这些行
    <div class="woocommerce-variation-availability">
    {{{ data.variation.availability_html }}}
</div>

以及来自 simple.php 的这一行(第 28 行)

echo wc_get_stock_html( $product );

然后在您的 functions.php 中添加以下代码,将优先级更改为您希望显示库存状态的位置。

add_action( 'woocommerce_single_product_summary', 'mh_output_stock_status', 21 );

function mh_output_stock_status ( ) {
    global $product;

    echo wc_get_stock_html( $product );

}

我真的希望像总结的其余部分一样吸引股票。这会更直接。

我希望这对其他人有帮助。