1クリックで一気に決済ページに行く

<実装方法>

・クリックで一気に決済ページに行く

購入するボタン(/shop/?add-to-cart=20)


functions.phpまたはCode Snippetsに下記を追加する
//商品が追加されたらカートを空にする
// remove old items in cart when new items added
add_filter('woocommerce_add_to_cart_validation', 'remove_cart_item_before_add_to_cart', 1, 3);
function remove_cart_item_before_add_to_cart($passed, $product_id, $quantity) {
	if (!WC()->cart->is_empty()) {
		WC()->cart->empty_cart();
	}
	return $passed;
}

//カートに入れたらチェックアウトページにリダイレクト
function tofu_add_to_cart_redirect( $url ) {
	$url = WC()->cart->get_checkout_url();
	return $url;
}
add_filter( 'woocommerce_add_to_cart_redirect', 'tofu_add_to_cart_redirect' );

//Added to cartメッセージ非表示
add_filter( 'wc_add_to_cart_message_html', '__return_false' );

//Thank You page by creating a Redirect
add_action( 'template_redirect', 'woo_custom_redirect_after_purchase' );
function woo_custom_redirect_after_purchase() {
	global $wp;
	if ( is_checkout() && !empty( $wp->query_vars['order-received'] ) ) {
		wp_redirect( '/thankyou/' );
		exit;
	}
}

【参照】
●カートをスキップ!クリック一つで一気に決済ページに行く方法 – WooCommerce
https://www.youtube.com/watch?v=_uQCajGiN5Q
https://drive.google.com/file/d/1iOrq21J97kyoxrZe4Df0u7WFrpxa9zwV/view



・決済ページのカスタマイズ① 不要な項目を消す

チェックアウトページの項目をプラグイン「Checkout Field Editor」を使ってカスタマイズする



・決済ページのカスタマイズ② ボタンの名称を変更する

checkout.js
jQuery(function(){
	let target = document.getElementById('payment');
	const observer = new MutationObserver(records => {
		if (jQuery('#place_order')[0]) {
			let place_order = jQuery('#place_order').text();
			console.log("place_order="+place_order);
			if (place_order == "注文する") {
				jQuery('#place_order').addClass('ch');
			}
		}
	})
	observer.observe(target, {
		attributes: true,
		subtree: true,
	})
});