在 WooCommerce 单个产品页面上使用 ACF true/false 字段
Using ACF true/false field on WooCommerce single product page
我有一个 WooCommerce 网站,在单个产品页面中,我有一个自定义复选框以在添加到购物车按钮之前同意条款,但我试图在仪表板中添加一个 true/false 字段,以便此复选框可以移动到页面上的不同位置。
我的函数是这样的:
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
}
什么也没有发生,我是沿着正确的路线还是偏离了方向?
虽然 acf/init
类似于 WordPress 初始化操作,但我不会使用它。
Init hooks 不断执行..因为你想在单个产品页面上应用一个动作,所以最好使用只适用于该页面的 hook,并且只会 运行 在这些页面上.
例如,您可以使用 woocommerce_single_product_summary
挂钩。在检索字段之前通过硬编码测试字段也可能很有用。
所以你得到:
function action_woocommerce_single_product_summary() {
// Get field
//$move_cart = get_field( 'move_cart' );
// Set true OR false
$move_cart = false;
// When true
if ( $move_cart ) {
add_action( 'woocommerce_after_single_product', 'my_callback_function', 9 );
} else {
add_action( 'woocommerce_before_add_to_cart_form', 'my_callback_function', 9 );
}
}
add_action( 'woocommerce_single_product_summary', 'action_woocommerce_single_product_summary', 1 );
function my_callback_function() {
echo '<p style="color: red; font-size: 20px;">Hello World!</p>';
}
如果上述步骤有效,您可以将硬编码字段替换为所需的 code/field
我有一个 WooCommerce 网站,在单个产品页面中,我有一个自定义复选框以在添加到购物车按钮之前同意条款,但我试图在仪表板中添加一个 true/false 字段,以便此复选框可以移动到页面上的不同位置。
我的函数是这样的:
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
}
什么也没有发生,我是沿着正确的路线还是偏离了方向?
虽然 acf/init
类似于 WordPress 初始化操作,但我不会使用它。
Init hooks 不断执行..因为你想在单个产品页面上应用一个动作,所以最好使用只适用于该页面的 hook,并且只会 运行 在这些页面上.
例如,您可以使用 woocommerce_single_product_summary
挂钩。在检索字段之前通过硬编码测试字段也可能很有用。
所以你得到:
function action_woocommerce_single_product_summary() {
// Get field
//$move_cart = get_field( 'move_cart' );
// Set true OR false
$move_cart = false;
// When true
if ( $move_cart ) {
add_action( 'woocommerce_after_single_product', 'my_callback_function', 9 );
} else {
add_action( 'woocommerce_before_add_to_cart_form', 'my_callback_function', 9 );
}
}
add_action( 'woocommerce_single_product_summary', 'action_woocommerce_single_product_summary', 1 );
function my_callback_function() {
echo '<p style="color: red; font-size: 20px;">Hello World!</p>';
}
如果上述步骤有效,您可以将硬编码字段替换为所需的 code/field