MNews 主题集成了 WooCommerce 商城插件，有些用户要求增加一个『立即购买』按钮，这篇文章介绍下如何在WooCommerce中添加“立即购买”按钮并直接跳转到结算页面。

注：当前功能只对『单个产品』有效。

### 一、添加『立即购买』按钮 HTML 代码

找到插件目录 `/wp-content/plugins/woocommerce/templates/single-product/add-to-cart` 下的 simple.php 文件，复制到主题 `/wp-content/themes/mnews/woocommerce/single-product/add-to-cart` 目录下，找到如何代码：

1. &lt;button type=“submit” name=“add-to-cart” value=“&lt;?php echo esc\_attr( $product-&gt;get\_id() ); ?&gt;” class=“single\_add\_to\_cart\_button button alt”&gt;&lt;?php echo esc\_html( $product-&gt;single\_add\_to\_cart\_text() ); ?&gt;&lt;/button&gt;

在其下添加以下代码：

1. &lt;button type=“submit” name=“add-to-cart” value=“&lt;?php echo esc\_attr($product-&gt;get\_id()); ?&gt;” class=“single\_add\_to\_cart\_button button alt” id=“buy\_now\_button”&gt;
2. &lt;?php \_e(‘立即购买’,’salong’); ?&gt;
3. &lt;/button&gt;
4. &lt;input type=“hidden” name=“is\_buy\_now” id=“is\_buy\_now” value=“0” /&gt;

此代码将会在『加入购物车』按钮后添加一个新的『立即购买』按钮。

### 二、添加 JS 代码函数到 functions.php 中

1. function buy\_now\_submit\_form() {
2. ?&gt;
3. &lt;script&gt;
4. jQuery(document).ready(function(){
5. // listen if someone clicks ‘Buy Now’ button
6. jQuery(‘#buy\_now\_button’).click(function(){
7. // set value to 1
8. jQuery(‘#is\_buy\_now’).val(‘1’);
9. //submit the form
10. jQuery(‘form.cart’).submit();
11. });
12. });
13. &lt;/script&gt;
14. &lt;?php
15. }
16. add\_action(‘woocommerce\_after\_add\_to\_cart\_form’, ‘buy\_now\_submit\_form’);

此段代码是用来监听按钮点击事件，也可以单独把 js 代码直接放在 js 文件中，不过这样方便一些。

### 三、重定向到结算页面

1. add\_filter(‘woocommerce\_add\_to\_cart\_redirect’, ‘redirect\_to\_checkout’);
2. function redirect\_to\_checkout($redirect\_url) {
3. if (isset($\_REQUEST\[‘is\_buy\_now’\]) &amp;&amp; $\_REQUEST\[‘is\_buy\_now’\]) {
4. global $woocommerce;
5. $redirect\_url = wc\_get\_checkout\_url();
6. }
7. return $redirect\_url;
8. }

这是帮助我们将用户重定向到结帐页面的代码。默认情况下，是重定向到购物车页面。

到此，如果点击『立即购买』按钮，将重定向到结帐页面。

英文原文地址：https://medium.com/@dwebsoftguy/add-buy-now-button-in-woocommerce-804528d41ecf