我目前在结帐页面上添加了一个复选框,用于接受条款和条件。我想将其移至购物车页面,因此他们必须勾选此选项才能进入结帐页面。
这是我的职能,这可能吗?
add_action('woocommerce_review_order_before_submit', 'add_checkout_tickbox', 9);
function add_checkout_tickbox() { ?>
<p class="form-row terms">
<input type="checkbox" class="input-checkbox" name="terms" id="terms" />
<label for="terms" class="checkbox">I accept I've seen the below terms</label>
<a href="/terms" class="btn-primary">See the terms</a>
</p>
<?php }
// Show notice if customer does not tick
add_action('woocommerce_checkout_process', 'not_approved');
function not_approved() {
if ( ! $_POST['terms'] )
wc_add_notice( __( 'Please acknowledge the terms and conditions' ), 'error' );
}
谢谢!
答案 0 :(得分:0)
我不能说这会100%有效,因为我自己没有尝试过但是尝试......
如果您不是主题开发人员,建议您先创建一个儿童主题。 Follow these steps, if needed >>>
然后,您需要安装WordPress插件Simply Show Hooks。成功安装所述插件后,您只需访问每个网页,即可查看网页上的所有Hooks
和Actions
。
接下来,如果适用,请进入您的儿童主题中的functions.php
文件,然后输入:
remove_action('woocommerce_review_order_before_submit', 'add_checkout_tickbox', 9);
这将删除该复选框。如果您正在处理父主题中的functions.php
文件,请确保在 add_action('woocommerce_review_order_before_submit', 'add_checkout_tickbox', 9);
之后添加此条目。对于父级和子级主题条目,请确保优先级9保持不变。
然后,您前往购物车页面,查找您要放置复选框的相关挂钩。您应该会在页面上的绿色框中看到挂钩。找到您的Hook后,您只需输入附加的编码,将woocommerce_review_order_before_submit
替换为您想要的Hook。例如:
add_action('YOUR_DESIRED_HOOK', 'add_checkout_tickbox', 9);
function add_checkout_tickbox() { ?>
<p class="form-row terms">
<input type="checkbox" class="input-checkbox" name="terms" id="terms" />
<label for="terms" class="checkbox">I accept I've seen the below terms</label>
<a href="/terms" class="btn-primary">See the terms</a>
</p>
<?php }
查看代码后,您确定{ ?>
和<?php }
应该在那里吗?这看起来像是一个错误,但我可能是错的。如果这不起作用,请尝试删除?>
和<?php
一旦您对搬迁感到满意,您就可以卸载/禁用Simply Show Hooks插件,直到再次需要它为止。
正如我所说的那样,我自己并没有这样做,所以不能说它会100%有效,但确实让我们知道你是怎么做的。