【问题标题】:How to add a Woocommerce buy now button?如何添加 Woocommerce 立即购买按钮?
【发布时间】:2015-09-14 04:51:00
【问题描述】:

我希望在产品页面上添加一个“立即购买”按钮,并在点击后重定向到结帐页面不将产品添加到购物车。我注意到Woocommerce - Add To Cart and Buy Now buttons on Product Pages之前有人问过类似的问题

但是这种方法只重定向到结帐页面,但仍将相应的产品添加到购物车中。

我怎样才能做到这一点?非常感谢。

-----更新 10/7/2015---------

我认为最好的方法是创建另一个购物车和结帐实例,但我只是不知道如何实现它,有人可以帮助我吗?

http://wordpress.org/extend/plugins/woocommerce/

【问题讨论】:

  • 您的要求没有意义。将客户重定向到一个空的结帐页面有什么意义?如果购物车为空,结帐将重定向回购物车。请提供更多信息,说明您为什么要实现这一目标,可能还有其他解决方案。
  • @Anand 谢谢回复。我使用这个“立即购买”按钮的目的是跳过 添加到购物车 功能。例如,如果购物车中已经有产品 A、B,并且我在 C 的另一个产品页面上单击“立即购买”按钮,则购物车中的 A 和 B 仍会在购物车中,并且不会结帐,只有 C 将在结帐页面的产品列表中,并且 C 没有添加到购物车中。这有意义吗?
  • 您的问题解决了吗?我想实现同样的目标

标签: php wordpress woocommerce


【解决方案1】:

我曾经用过这段代码

<?php $add_to_cart = do_shortcode('[add_to_cart_url id="25"]'); ?>
<a href="'. $add_to_cart .'"><img src="'. get_template_directory_uri() . '/img/small-cart.png" />Buy Now</a>

WooCommerce 还提供大量简码,可让您轻松开发电子商务主题。你可以看这里:http://docs.woothemes.com/document/woocommerce-shortcodes/

【讨论】:

  • 但我想重定向到结帐页面而不将产品添加到购物车中。
【解决方案2】:

您可以使用 WooCommerce 挂钩 woocommerce_after_add_to_cart_button。这个钩子会在“添加到购物车”按钮之后添加内容。

如果客户点击此按钮,产品应该被添加到购物车中,客户应该被发送到结帐页面。

在您的子主题中添加以下代码functions.php

/* Create Buy Now Button dynamically after Add To Cart button */
    function add_content_after_addtocart() {
    
        // get the current post/product ID
        $current_product_id = get_the_ID();
    
        // get the product based on the ID
        $product = wc_get_product( $current_product_id );
    
        // get the "Checkout Page" URL
        $checkout_url = WC()->cart->get_checkout_url();
    
        // run only on simple products
        if( $product->is_type( 'simple' ) ){
            echo '<a href="'.$checkout_url.'?add-to-cart='.$current_product_id.'" class="buy-now button">Buy Now</a>';
            //echo '<a href="'.$checkout_url.'" class="buy-now button">Buy Now</a>';
        }
    }
    add_action( 'woocommerce_after_add_to_cart_button', 'add_content_after_addtocart' );

【讨论】:

  • 这对于简单的产品非常有效,但似乎不适用于可变产品。这是一个已知的限制吗?是否必须以不同的方式处理可变产品?
【解决方案3】:

在您的主题functions.php中尝试此代码,单击“添加到购物车”按钮后,它会将您重定向到结帐页面

function redirect_to_checkout() {
    return WC()->cart->get_checkout_url();
}

【讨论】:

    【解决方案4】:
    <a href="<?php echo esc_url(home_url( '/' ));?>cart/?add-to-cart=<?php the_ID();?>" class="btn btn-primary"><?php esc_html_e('Buy it now!', 'your-domain'); ?></a>
    

    【讨论】:

      【解决方案5】:

      这段代码应该适用于简单和可变产品,在 Woocommerce 中的添加到购物车按钮旁边创建一个动态按钮。

      将此代码添加到您的子主题“functions.php”文件中,您就可以开始了。

      /* Dynamic Button for Simple & Variable Product */
      
      /**
       * Main Functions
      */
      
      function sbw_wc_add_buy_now_button_single()
      {
          global $product;
          printf( '<button id="sbw_wc-adding-button" type="submit" name="sbw-wc-buy-now" value="%d" class="single_add_to_cart_button buy_now_button button alt">%s</button>', $product->get_ID(), esc_html__( 'Buy Now', 'sbw-wc' ) );
      }
      
      add_action( 'woocommerce_after_add_to_cart_button', 'sbw_wc_add_buy_now_button_single' );
      
      
      
      /*** Handle for click on buy now ***/
      
      function sbw_wc_handle_buy_now()
      {
          if ( !isset( $_REQUEST['sbw-wc-buy-now'] ) )
          {
              return false;
          }
      
          WC()->cart->empty_cart();
      
          $product_id = absint( $_REQUEST['sbw-wc-buy-now'] );
          $quantity = absint( $_REQUEST['quantity'] );
      
          if ( isset( $_REQUEST['variation_id'] ) ) {
      
              $variation_id = absint( $_REQUEST['variation_id'] );
              WC()->cart->add_to_cart( $product_id, 1, $variation_id );
      
          }else{
              WC()->cart->add_to_cart( $product_id, $quantity );
          }
      
          wp_safe_redirect( wc_get_checkout_url() );
          exit;
      }
      
      add_action( 'wp_loaded', 'sbw_wc_handle_buy_now' );
      
      /* Dynamic Button for Simple & Variable Product Closed */
      

      致谢:https://profiles.wordpress.org/navarroido/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-09-28
        • 2015-01-15
        • 2021-12-02
        • 2015-05-24
        • 2015-09-22
        • 2014-10-05
        • 2013-01-03
        相关资源
        最近更新 更多