我寫了這個小插件,共享在這裏。該插件爲產品元框添加了一個小型複選框,因此您可以指定哪些產品應觸發自動跳過結帳。基本上使用與其他答案中相同的woocommerce_add_to_cart_redirect
過濾器,但提供admin後端選項以確定哪些產品會觸發重定向。
<?php
/**
* Plugin Name: Redirect to checkout
* Plugin URI: http://stackoverflow.com/q/32962653/383847
* Description: redirect to checkout for certain products
* Version: 1.0
* Author: Kathy Darling
* Author URI: http://kathyisawesome.com
* Requires at least: 3.8
* Tested up to: 3.9
*
* Text Domain: kia-redirect-to-checkout
* Domain Path: /languages/
*
*/
if (! defined('ABSPATH')) {
exit; // Exit if accessed directly
}
/*
* Add text inputs to product metabox
*/
function kia_add_to_wc_metabox(){
global $post;
echo '<div class="options_group">';
// Suggested Price
echo woocommerce_wp_checkbox(array(
'id' => '_redirect_to_checkout',
'label' => __('Redirect to checkout', 'kia-redirect-to-checkout') ,
'description' => __('When this item is added to the cart, re-direct the customer to checkout immediately.', 'kia-redirect-to-checkout')
)
);
echo '</div>';
}
add_action('woocommerce_product_options_general_product_data', 'kia_add_to_wc_metabox');
/*
* Save extra meta info
*/
function kia_process_wc_meta_box($post_id, $post) {
if (isset($_POST['_redirect_to_checkout'])) {
update_post_meta($post_id, '_redirect_to_checkout', 'yes');
} else {
update_post_meta($post_id, '_redirect_to_checkout', 'no');
}
}
add_action('woocommerce_process_product_meta', 'kia_process_wc_meta_box', 1, 2);
/*
* Redirect to checkout
*/
function kia_add_to_cart_redirect($url){
// If product is one of our special types
if (is_numeric($_REQUEST['add-to-cart']) && kia_maybe_redirect_cart((int) $_REQUEST['add-to-cart'])) {
// Remove default cart message
WC()->clear_messages();
// Redirect to checkout
$url = WC()->cart->get_checkout_url();
}
return $url;
}
add_filter('woocommerce_add_to_cart_redirect', 'kia_add_to_cart_redirect');
/*
* check if an item has custom field
*/
function kia_maybe_redirect_cart($product_id){
if ('yes' == get_post_meta($product_id, '_redirect_to_checkout', true)){
return TRUE;
} else {
return false;
}
}
謝謝@PrafullaKumarSahu – Marcio
幫助人們總是愉快:) –