如何在WooCommerce等插件中正确使用钩子来创建自定义产品类型的模板?

时间:2020-04-08 作者:Liekeee

我为Woocommerce创建了自己的产品类型。但现在我正在寻找前端模板的解决方案。

我在de folder templates/single product/add to cart templates中看到了简单、分组变量等。如何为我自己的产品类型前端模板定义路径?

1 个回复
最合适的回答,由SO网友:simongcc 整理而成

您可以使用以下格式的操作woocommerce_YOUR_PRODUCT_TYPE_add_to_cart 达到目标。下面是一个例子。

以下代码用于输入functions.php, 如果您正在编写插件。请记住更改回拨Special, 您想为其添加“添加到购物车”模板。

添加操作筛选器woocommerce_special_add_to_cartwoocommerce_special_add_to_cart

// it is better to follow the naming conventions in Woocommerce for the ease of understanding

add_action( \'woocommerce_special_add_to_cart\', \'woocommerce_special_add_to_cart\', 30 );
function q363582_special_add_to_cart() {
   /**
     * Output the special product add to cart area.
     */
    function woocommerce_special_add_to_cart() {
        wc_get_template( \'your-own-path/special.php\' ); // if you have arguments, you could use, read the the manual links of this function for reference
    }
}
对于路径,由于Woocommerce允许在主题中定制模板,因此您的路径可能类似于your-theme/single-product/add-to-cart/special.php 如果使用wc\\u get\\u template()函数。

这个woocommerce_special_add_to_cart 操作将由另一个操作调用woocommerce_template_single_add_to_cart 它将读取产品类型并创建相应的操作。

// usage
wc_get_template( $template_name, $args = array(), $template_path = \'\', $default_path = \'\' )
根据此功能,您也可以使用自己的$template_path, 所以我认为这应该能满足你的需要。

有关详细信息,您可以阅读文档:wc_get_template()

用于wc_get_template(), 您可以参考源代码以获取默认产品类型的示例,如分组、变体等:wc-template-functions.php

相关推荐

About wordpress child themes

我对WordPress和儿童主题有一些问题。据我所知,如果我不想在更新主题时失去任何东西,使用子主题是很重要的。我是WordPress的初学者,到目前为止,我一直在使用PageBuilder(管理面板上的板载自定义选项)自定义我的网站,并在“附加CSS”选项中加入几行CSS。所有这些都是在主主题上完成的(只是玩转尝试学习),现在我想开始使用一个儿童主题。问题如下:我不知道我是否可以像通过管理界面设计父主题那样设计我的子主题,或者我是否必须通过文本编辑器(在我的计算机上,然后通过FTP等方式上传)对所有内容