如何访问动作钩子中的页面变量

时间:2017-02-02 作者:php-b-grader

我有一个动作挂钩,它只显示一个用于注册的联系人表单:

add_action(\'woocommerce_single_product_summary\',\'add_product_signup\', 10, 2);
function add_product_signup() {
    do_shortcode(\'[contact-form-7 id="20709" title="Product Sale Notification Signup"]\');
}
这很好,但是。。。我只想在产品未上市的情况下出示表格。

如何访问“on\\u sale”变量以测试真/假,然后显示/隐藏此联系人表单?

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

product类上有一个方法被调用is_on_sale() 这实际上决定了产品是否在销售中。您可以从访问它global $product 变量而且必须echo 这个do_shortcode. 所以整个代码如下-

add_action(\'woocommerce_single_product_summary\',\'add_product_signup\', 10, 2);
function add_product_signup() {
    global $product;
    if( $product->is_on_sale() ) {
        echo do_shortcode(\'[contact-form-7 id="20709" title="Product Sale Notification Signup"]\');
    }
}

The above code is tested. I tested it personally and it worked pretty well.

相关推荐

apply_filters to $GLOBALS

我正在使用Pootle页面构建插件构建一个单页网站。使用get\\u page,我在1页上显示每个单独的页面。为了针对Pootle页面生成器内容,我使用以下代码:$content = $GLOBALS[\'Pootle_Page_Builder_Render_Layout\']->panels_render( $page_data->ID ); 当我尝试实现一个像旋转木马这样的插件时,我需要使用一个短代码,但短代码不起作用。为了使短代码有效,我需要使用apply_filters(\'