在 WooCommerce 单一产品页面上使用 ACF true/false 字段
我有一个 WooCommerce 网站,在单个产品页面中,我有一个自定义复选框,用于同意“添加到购物车”按钮之前的条款,但我尝试在仪表板中添加一个“真/假”字段,以便可以将该复选框移动到页面上的不同位置。
我的功能看起来像这样:
add_action( 'acf/init', "acf_move_checkbox", 10 );
function acf_move_checkbox() {
$move_cart = get_field('move_cart');
if ($move_cart) {
add_action( 'woocommerce_after_single_product', "acf_product_terms", 10 );
} else {
add_action( 'woocommerce_before_add_to_cart_form', "acf_product_terms", 10 );
}
// More code
}
什么也没有发生,我的做法是正确的还是偏离的?
I have a WooCommerce site and in the single product page I have a custom checkbox to agree to terms before the add to cart button, but I am trying to add a true/false field in the dashboard so that this checkbox can be moved to a different position on the page.
My functions look like this:
add_action( 'acf/init', "acf_move_checkbox", 10 );
function acf_move_checkbox() {
$move_cart = get_field('move_cart');
if ($move_cart) {
add_action( 'woocommerce_after_single_product', "acf_product_terms", 10 );
} else {
add_action( 'woocommerce_before_add_to_cart_form', "acf_product_terms", 10 );
}
// More code
}
And nothing is happening, am I along the right lines with this or way off?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
虽然
acf/init
与 WordPress 的 init 操作类似,但我不会使用它。初始化挂钩会不断执行......因为您想在单个产品页面上应用操作,所以最好使用仅适用于该页面的挂钩,并且仅在这些类型的页面上运行。
例如,您可以使用
woocommerce_single_product_summary
挂钩。在检索字段之前通过硬编码来测试字段也可能很有用。所以你得到:
如果上述步骤有效,你可以用所需的代码/字段替换硬编码字段
While
acf/init
is similar to the WordPress init action, I wouldn't use it.Init hooks are performed constantly.. since you want to apply an action on the single product page it's best to use a hook that only applies to that page, and will only run on those kinds of pages.
For example you can use the
woocommerce_single_product_summary
hook. It might also be useful to test fields by hard coding before retrieving them.So you get:
If the above step works, you can replace the hard coded field with the desired code/field