在WooCommerce添加到购物车

时间:2017-07-21 23:52:34

标签: php wordpress woocommerce checkout product

我想在用户点击ADD TO CART按钮后完全删除任何重定向。

其实我没有使用产品页面。
我使用的是一个简单的按钮,其中包含指向该产品的链接,例如: ?add-to-cart=492

我的用户将点击我页面上的几个“添加到购物车”按钮,因此在点击第一个按钮后,他无法重定向到任何页面。

在页面的最后,他会找到一个支付的CHECKOUT按钮,就是这样。

任何想法如何实现这一目标?

由于

2 个答案:

答案 0 :(得分:1)

<强>更新

您的简单html&#34;添加到购物车&#34;按钮链接实际上就像 href 值)

<a href="http://my-domain.com/site2/?add-to-cart=492" target="_self" class="button white is-larger carrinho">
    <span>ESCOLHER PACOTE</span>
</a>
  

因此每次都会将它们重定向到您的主页

2解决方案:

1)以这种方式使用WooCommerce short code [add-to-cart]:**

  • 没有价格: [add_to_cart id="492" show_price="false"]
  • 价格为: [add_to_cart id="492"]

2)页面文字编辑器中的 Html代码 - 为防止重定向 href属性应为:

<a href="?add-to-cart=492" class="button white is-larger carrinho">
    <span>ESCOLHER PACOTE</span>
</a>
  

这次您的客户不会像以前一样重定向 ...

结账按钮

要完成,这里是一个自定义短代码,它将输出&#34;继续结帐&#34;按钮:

if( !function_exists('proceed_to_checkout_button') ) {
    function proceed_to_checkout_button() {

        $checkout_url = wc_get_checkout_url();
        $button_txt = __('Proceed to checkout', 'woocommerce');

        $output = '<div class="wc-proceed-to-checkout">
            <a href="'. $checkout_url .'" class="checkout-button button alt wc-forward">
                '. $button_txt .'
            </a>
        </div>';

        return $output;
    }
    add_shortcode( 'checkout_button', 'proceed_to_checkout_button' );
}

代码放在活动子主题(或主题)的function.php文件中,或者放在任何插件文件中。

  

用法:只需将其添加到您的网页编辑器中: [checkout_button]

原始回答:

首先,在WooCommerce设置中,您需要:

  • 在“添加到购物车”按钮上启用** Ajax(Woocommerce&gt;设置&gt;产品&gt;显示)
  • 停用添加到购物车按钮重定向(Woocommerce&gt;设置&gt;产品&gt;显示)

然后您可以添加自定义&#34;继续结帐&#34;按钮使用:

  • 任何经典的WordPress菜单(外观&gt;菜单)
  • 在单个产品页面和产品档案中使用该自定义代码:
add_action('woocommerce_after_single_product', 'custom_checkout_button', 100);
add_action('woocommerce_after_shop_loop', 'custom_checkout_button', 100);
function custom_checkout_button() {

    $checkout_url = wc_get_checkout_url();
    $button_txt = __('Proceed to checkout', 'woocommerce');

    ?>
        <div class="wc-proceed-to-checkout">
            <a href="<?php echo $checkout_url; ?>" class="checkout-button button alt wc-forward">
                <?php echo $button_txt ?>
            </a>
        </div>
    <?php
}

代码放在活动子主题(或主题)的function.php文件中,或者放在任何插件文件中。

按钮&#34;继续结帐&#34;将在本页底部显示。

如果您想跳过购物车页面:

add_action('template_redirect', 'skip_cart_page_redirecting_to_checkout');
function skip_cart_page_redirecting_to_checkout() {

    // If is cart page and cart is not empty
    if( is_cart() && ! WC()->cart->is_empty() )
        wp_redirect( wc_get_checkout_url() );
}

代码放在活动子主题(或主题)的function.php文件中,或者放在任何插件文件中。

所有代码都经过测试并且有效。

答案 1 :(得分:0)

就像woocommerce本身一样,在产品代码简码中也可以使用过滤器,将其添加到“添加到购物车”按钮“ woocommerce_add_to_cart_form_action”中。

// Change form action to avoid redirect.
add_filter( 'woocommerce_add_to_cart_form_action', '__return_empty_string' );