我需要一个独特的着陆页上的按钮来执行此操作:
我有一个调用链接的按钮:https://www.snoooze.co/?add-to-cart= 12374
然后我的“functions.php”中的这个片段
add_filter ('woocommerce_add_to_cart_redirect', 'woo_redirect_to_checkout');
function woo_redirect_to_checkout() {
global $woocommerce;
$woocommerce->cart->empty_cart();
$checkout_url = WC()->cart->get_checkout_url();
return $checkout_url; }
问题在于,如果我使用add_to_Cart()
在我的函数中添加项目,每次我想在商店中手动添加项目时都会这样做,而不是仅仅点击着陆页上的按钮。 / p>
我看到我必须以某种方式将该功能分配给按钮,因此不会在其他网站上调用,但是如何调用?
请帮助。
答案 0 :(得分:1)
首先,您需要在表单中嵌入自定义按钮。所以这是一个简单的短代码,可以在内容编辑器或php中使用:
// Shortcode: Special button "add-to-cart" with form
function special_button() {
return '<form method="post" action="">
<button type="submit" class="button" name="add_to_cart_special">Special add to cart</button>
</form>';
}
add_shortcode( 'special_button', 'special_button' );
// Usage: [special_button]
// or for php: echo do_shortcode("[special_button]");
这个自定义钩子函数将在您按下该自定义按钮时触发。它会:
代码:
// Special add to cart (empty cart before and redirect to checkout)
add_action( 'template_redirect', 'special_add_to_cart' );
function special_add_to_cart() {
if ( isset($_POST['add_to_cart_special']) ){
WC()->cart->empty_cart();
WC()->cart->add_to_cart( 12374 );
wc_add_notice( __('this product X has been added to cart'), 'notice' );
wp_redirect( wc_get_checkout_url() );
exit();
}
}
所有代码都在您的活动子主题(或活动主题)的function.php文件中。
经过测试和工作。
但要禁用或隐藏您的&#34;菜单栏&#34;在结帐时,我真的不知道......这应该是另一个有更多细节的新问题......