WordPress: 添加 立即購買 按鈕

33

這篇文章介紹下如何在WooCommerce中添加 [立即購買] 按鈕並直接跳轉到結算頁面。

有兩種產品模式 單一產品 及 變化產品要分開處理

單一產品

因為直接在外掛及外觀添加程式碼,但是版本自動更新後會被自動還原,因此必須新增外掛theme-customisations-master.zip

https://github.com/woocommerce/theme-customisations

修改單一產品:找到外掛目錄 /wordpress/wp-content/plugins/woocommerce/templates/single-product/add-to-cart/simple.php FTP下載後開啟檔案,找到以下程式碼片段:

<button type=”submit” name=”add-to-cart” value=”<?php echo esc_attr( $product->get_id() ); ?>” class=”single_add_to_cart_button button alt”><?php echo esc_html( $product->single_add_to_cart_text() ); ?></button>

在其上面添加以下程式碼:

<!--新增[立即購買]按鈕-->
    <button type="submit" name="add-to-cart" value="<?php echo esc_attr( $product->get_id() ); ?>" class="single_add_to_cart_button button alt" id="buy_now_button">
    <?php _e('立即購買','salong'); ?>
    </button>
    <input type="hidden" name="is_buy_now" id="is_buy_now" value="0" />
<!--新增[立即購買]按鈕-->

變化產品

修改多樣產品:找到外掛目錄 /wordpress/wp-content/plugins/woocommerce/templates/single-product/add-to-cart/variation-add-to-cart-button.php FTP下載後開啟檔案,找到以下程式碼片段:

<button type="submit" class="single_add_to_cart_button button alt"><?php echo esc_html( $product->single_add_to_cart_text() ); ?></button>

在其上面添加以下程式碼:

<!--新增[立即購買]按鈕-->
    <button type="submit" name="add-to-cart" value="<?php echo esc_attr( $product->get_id() ); ?>" class="single_add_to_cart_button button alt" id="buy_now_button">
    <?php _e('立即購買','salong'); ?>
    </button>
    <input type="hidden" name="is_buy_now" id="is_buy_now" value="0" />
<!--新增[立即購買]按鈕-->

FTP上傳到 /wordpress/wp-content/plugins/theme-customisations-master/custom/templates/woocommerce/single-product/add-to-cart/
如果沒有目錄則自行新增

外觀的部分

FTP下載 /wordpress/wp-content/plugins/theme-customisations-master/custom/functions.php
在最下面新增以下程式碼,以下程式碼將所有[立即購買]啟動

/**
啟動[立即購買]按鈕
*/
function buy_now_submit_form() {
?>
<script>
jQuery(document).ready(function(){
// listen if someone clicks ‘Buy Now’ button
jQuery(‘#buy_now_button’).click(function(){
// set value to 1
jQuery(‘#is_buy_now’).val(‘1’);
//submit the form
jQuery(‘form.cart’).submit();
});
});
</script>
<?php
}
add_action(‘woocommerce_after_add_to_cart_form’, ‘buy_now_submit_form’);

add_filter(‘woocommerce_add_to_cart_redirect’, ‘redirect_to_checkout’);
function redirect_to_checkout($redirect_url) {
if (isset($_REQUEST[‘is_buy_now’]) && $_REQUEST[‘is_buy_now’]) {
global $woocommerce;
$redirect_url = wc_get_checkout_url();
}
return $redirect_url;
}

修添加後再FTP上傳 /wordpress/wp-content/plugins/theme-customisations-master/custom/functions.php 蓋掉

結果

按下 立即購買 後直接進結帳