在Woocommerce单个产品页面中,我使用了woocommerce_after_add_to_cart
钩子添加了自定义按钮。单击/按下该按钮后,会将客户重新定向到结帐。
但是为了避免客户在将产品添加到购物车之前单击按钮,我在函数中添加了if ( WC()->cart->get_cart_contents_count() != 0 ) {
。
我的问题是:在将产品添加到购物车之前,如何使此按钮始终可用,但不活动?在购物车中没有产品之前,如何使它“变灰”(不可点击)?
这是我完整的代码:
add_action('woocommerce_after_add_to_cart_button, 'instant_checkout');
function instant_checkout() {
$checkout_url = WC()->cart->get_checkout_url();
if ( WC()->cart->get_cart_contents_count() != 0 ) {
echo '<a href="'.$checkout_url.'" class="single_add_to_cart_button button alt">Instant Checkout</a>'; } }
谢谢您的帮助。
答案 0 :(得分:0)
以下将在添加到购物车按钮之后显示自定义的禁用按钮…将产品添加到购物车后,将启用该产品并将其链接到结帐页面:
add_action('woocommerce_after_add_to_cart_button', 'get_instant_checkout_buttom_html');
function get_instant_checkout_buttom_html() {
global $product;
$href = ''; // Initializing
$class = ' disabled'; // Initializing
// Continue only if cart is not empty
if ( ! WC()->cart->is_empty() ) {
// Loop through cart items
foreach( WC()->cart->get_cart() as $item ) {
// When product is in cart
if( $item['product_id'] == $product->get_id() ){
$href = ' href="'.wc_get_checkout_url().'"'; // Add the link to the button
$class = ''; // Remove "disabled" class
break; // Stop the loop
}
}
}
// Button output
echo '<a'.$href.' class="single_add_to_cart_button button alt'.$class.'">'.__("Instant Checkout").'</a>';
}
代码进入您的活动子主题(活动主题)的function.php文件中。经过测试,可以正常工作。