ホーム WooCommerceチュートリアル 標準記事

標準記事

WooCommerceで注文を自動完了させ自動発送を実現する方法

昨日、ある友人がNaibaに相談してきました。彼はWooCommerceを使って自動でカードキーを送信する機能を試みましたが失敗し、支払い後に表示されるステータスが「処理待ち」のままで、管理者が手動で管理画面から送信ボタンをクリックしないと、システムが顧客にシリアル番号を記載したメールを送信しないとのことでした。実はこの問題の原因は非常に簡単で、WooCommerceのワークフロー設計では、ユーザーが支払いを行った後、デフォルトのステータスが…

2020年2月8日公開 約5分で読めます
WooCommerce自动完成订单实现自动发货的方法

昨日、ある友人がNaibaに相談しました。彼が使用しているWooCommerce自動カードキー送信機能失敗し、支払い後に表示されるステータスが「処理待ち」のままで、管理者が手動で管理画面から送信ボタンをクリックしないと、システムが顧客にシリアル番号を記載したメールを送信しません。

実はこの問題の原因は非常に簡単で、WooCommerceのワークフロー設計では、ユーザーが支払いを行った後、デフォルトのステータスが「処理中」となり、管理者が処理を行って初めて「完了」になります(発送などの状況が関わるため)。

しかしご安心ください。Naibaが皆さんにご紹介します。自動注文完了を実現する2つの有効な方法

方法1:プラグインを使用する

Autocomplete WooCommerce Orders プラグインを利用して、注文を自動的に完了させます。

1. 管理画面で「Autocomplete WooCommerce Orders」を検索するか、以下のリンクをクリックしてダウンロードし、プラグインをインストールします。

ダウンロードリンク

2. プラグインを有効化し、WooCommerceの設定画面に移動します。

3. 「Autocomplete Orders」で設定を保存します。

https://wordpress.org/plugins/autocomplete-woocommerce-orders/

Autocomplete WooCommerce Orders は、実物注文と仮想注文を個別に自動完了するかどうかを設定でき、ほとんどの決済インターフェースにも対応しているので、安心してお使いいただけます。

この無料プラグインに満足できない場合は、以下も試せます。公式の有料プラグイン

方法2:コードを使用する

1. 以下のコードをサイトのテーマの functions.php ファイルに追加します。追加方法がわからない場合は、以下を参考にしてください:functions.phpファイルにコードを安全に追加する方法:Code Snippets

add_action('woocommerce_order_status_changed', 'ts_auto_complete_by_payment_method');

function ts_auto_complete_by_payment_method($order_id)
{

	if ( ! $order_id ) {
	return;
	}

	global $product;
	$order = wc_get_order( $order_id );

	if ($order->data['status'] == 'processing') {
	$payment_method=$order->get_payment_method();
		if ($payment_method!="cod")
		{
			$order->update_status( 'completed' );
		}

	}

}

このコードは、woocommerce_order_status_changedこのフックを使用して注文が完了したかどうかを判断し、代金引換以外の注文は、支払い受領後に自動的に「完了」とマークされます。

WooCommerceのデフォルトの支払い方法のIDです。上記のコードを適宜修正してください:銀行振込(bacs)、小切手支払い(cheque)、代金引換(cod)、PayPal(paypal)

2. 以下のコードは、仮想商品かどうかを検出し、仮想商品の場合は自動的に完了します。

add_action('woocommerce_order_status_changed', 'ts_auto_complete_virtual');

function ts_auto_complete_virtual($order_id)
{

	if ( ! $order_id ) {
		return;
	}

	global $product;
	$order = wc_get_order( $order_id );

	if ($order->data['status'] == 'processing') {

		$virtual_order = null;

		if ( count( $order->get_items() ) > 0 ) {

			foreach( $order->get_items() as $item ) {

				if ( 'line_item' == $item['type'] ) {

					$_product = $order->get_product_from_item( $item );

					if ( ! $_product->is_virtual() ) {
						// once we find one non-virtual product, break out of the loop
						$virtual_order = false;
						break;
					}
					else {
					$virtual_order = true;
					}
				}
			}
		}

		// if all are virtual products, mark as completed
		if ( $virtual_order ) {
		$order->update_status( 'completed' );
		}
	}
}

以上が、Naibaが共有するWooCommerce自動注文完了の方法です。お役に立てれば幸いです。

3.2/5 - (8票)
前の記事 WordPressマルチユーザー切り替えプラグイン WP User Switch 同じタイムラインの近くのコンテンツを読み続ける。 次の記事 WordPress有名SEOプラグインAll in One SEOがAwesome Motiveに買収 次の関連チュートリアルや経験を表示する。

AIサイト構築アシスタント

🤖
こんにちは!私はNaibaサイト構築ノートのAIアシスタントです。何かお手伝いできることはありますか?
クイックコンサルティング: