如果您希望自定义产品页面上显示的内容,有几种方法可以做到这一点:
1) Overriding the product page templates:组成产品页的组件可以在中找到wp-content/plugins/woocommerce/templates
, 如果要向产品页面的一个或多个部分添加变量,可以在当前设置的主题中覆盖页面的该部分。
例如,如果要向简短描述中添加变量,可以复制简短描述模板:
wp-content/plugins/woocommerce/templates/single-product/short-description.php
到当前设置的主题:
yourtheme/woocommerce/single-product/short-description.php`
并在副本上添加变量/更改结构。您可以对产品页面中的选项卡执行相同的操作(例如,其他信息和说明),请在中签出文件
plugins/woocommerce/templates/single-product/tabs/
.
如果您想对某个部分进行重大更改,这将非常有用。缺点是,如果WooCommerce开发人员对该模板进行了更改,您可能需要重新复制该文件以实现兼容性。
2) Add variables via filters:有些元素有过滤器,您可以使用这些过滤器操纵每个部分中使用的数据。
再次以简短的描述为例,可以添加一个钩子来操作数据,如下所示:
// define the woocommerce_short_description callback
function filter_woocommerce_short_description( $post_post_excerpt ) {
// make filter magic happen here...
return $post_post_excerpt;
};
// add the filter
add_filter( \'woocommerce_short_description\', \'filter_woocommerce_short_description\', 10, 1 );
取自
hookr.io你可以用你的functions.php
文件或自定义插件内部。这样做的好处是,对于WooCommerce开发人员对模板所做的更改,它更为健壮,但您所能做的更改更为有限。
基于澄清更新我想我误解了你的问题,如果你问的是变量范围,这更像是一个PHP问题,而不是WordPress问题。你可以declare your variable as a global, 然后您可以在任何地方访问它。
function redirect_form() {#
/* This is now globally scoped, you can access it anywhere */
global $my_var;
$my_var = $_POST["var1"];
}
然后,无论您想在哪里使用它,您都需要重新定义您是全局的,因此无论您在哪里操作产品页面代码,您都可以这样访问它:
global $my_var;
echo $my_var;
只是要小心你的变量的名字,因为你不想覆盖一些重要的东西。如果可能的话,我总是尽量避免使用全局变量,这取决于你想做什么,也许有更好/更安全的方法来共享这个变量,但如果不完全知道你想实现什么,我就无法提出更好的方法。