WooCommerceはWordPressサイトをECサイトにしてくれる便利なプラグインです。
WooCommerceを使うと、
有形商品のみならず無形商品の販売も可能になります。
ただ、
配送する必要のない無形商品であっても、
情報購入時にはデフォルトで住所を入力させる仕様になっています。
無形商品を購入するだけなら、
住所は不要なはずですから、
コーディングによるカスタマイズが必要です。
つまり、
バーチャルまたはダウンロード商品購入時には住所を入力不要にし、
配送が必要な商品購入時には住所・氏名など必要な情報が必須入力となるようWooCommerceの設定を変更できます。
「コーディング」と聞くと、
拒否反応が出る人も少なくありませんが、
これはコードをいじる中では、
めちゃくちゃイージーなレベルなので是非挑戦してみてください。
この住所入力を不要にするために、
わざわざプラグインを探し回るのはナンセンスですよ。
ちなみに、
ネット検索をすれば、
いくつかのサイトが同じ、あるいは類似のコード紹介をしてくれています。
わたしも「ものくろぼっくす」さんのサイトを参考にさせてもらいました。
https://mono96.jp/wordpress/woocommerce/41025/
私のサイトとサンプルコードの相性が良かったので助かりました。
他のサイトで紹介されていた「名前入力も不要にする」コードは私のサイトとは相性が悪く、
WordPressサイトがクラッシュし、真っ白な画面になり、ログインすらできなくなりました。
サーバー側からFTPを書き換えてもとに戻したので、
問題なく復旧しましたが(汗)
もともとは無形商品購入の際に、
「メールアドレスだけ」でご購入が完結できればと思っていましたが、
WooCommerceの仕様上、
名前の入力をコーディングで排除しても、
「アカウントのユーザー名」という形で、
何かしらの名前が要求されてしまいます。
それなら、そもそも名前の入力欄があっても一緒じゃん、
本名入れたくない人は、
偽名やペンネームを使ってくれるだろうし、
と思って「名前とメールアドレスだけ入力してもうらう」仕様に落ち着きました。
では、
以下は「ものくろぼっくす」さんが教えてくれた、
WooCommerce経由で商品購入する際に住所入力を排除して、
名前とメールアドレスだけで決済できるコードです。
/* デジタル商品 住所 カット */
add_filter( 'woocommerce_checkout_fields' , 'bbloomer_simplify_checkout_virtual' );
function bbloomer_simplify_checkout_virtual( $fields ) {
$only_virtual = true;
foreach( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
// Check if there are non-virtual products
if ( ! $cart_item['data']->is_virtual() ) $only_virtual = false;
}
if( $only_virtual ) {
unset($fields['billing']['billing_company']);
unset($fields['billing']['billing_address_1']);
unset($fields['billing']['billing_address_2']);
unset($fields['billing']['billing_city']);
unset($fields['billing']['billing_postcode']);
unset($fields['billing']['billing_country']);
unset($fields['billing']['billing_state']);
unset($fields['billing']['billing_phone']);
add_filter( 'woocommerce_enable_order_notes_field', '__return_false' );
}
return $fields;
}
/* end デジタル商品 住所 カット */
こちらのコードは、
WooCommerceを導入しているWordPressのダッシュボードから、
「外観」「テーマファイルエディター」へと進み、
ページ右側の「テーマファイル」から「functions.php」を開いて、
表示されるコードの最下部に上記コードを書き加えて「ファイルを更新」すれば完了です。
ここまでできれば後は、
ダッシュボードに戻って「商品」から個別商品を開く、もしくは新規商品を追加して、
「バーチャル」や「ダウンロード可能」を選択すると、
購入手続きページでは「名前とメールアドレス」のみで決済に進めるようになっています。
「バーチャル」や「ダウンロード可能」にチェックがなければ、
通常通り住所入力が必須となる購入手続きページが表示されます。
余談ですが…
私は名前まで入力不要にしようとしてサイトがクラッシュしましたが、
その対処法も(私の備忘録を兼ねて)紹介しておいきます。
WordPressにログインできないので、
別のルートからサイトデータにアクサスして、
書き加えたコードを一旦消す作業が必要になります。
方法はいくつかあるようですが、
私はFTPソフトを使ってデータを書き換えて復旧しました。
①FTPソフトがサイトデータにアクセスできるように、
レンタルサーバーの管理画面から、
「FTPアカウントIDとパスワード」を手に入れてください。
②次にFTPソフトを入手します。
私は、 https://ja.osdn.net/projects/ffftp/ から、
FFFTPというFTPソフトを入手しました。
安心してください。無料です。
③FFFTPをダウンロード・インストールができたら、
「新規ホスト」から
・ホストの設定名:任意
・ホスト名(アドレス):サーバーのコントロールパネル等にて確認できるFTPサーバー(該当する独自ドメインやサブドメイン)
・ユーザ名:サーバーのコントロールパネル等にて確認できるユーザー名(FTPアカウントID)
・パスワード/パスフレーズ:設定したパスワード(FTPアカウントのパスワード)
を入力して接続します。
※ご自身のレンタルサーバーのマニュアルを確認することを強くおススメします!
④FFFTPとサイトデータ(ホスト)への接続ができると
画面の左側が自分のパソコン、
画面の右側がサーバー側のファイル情報がひょうじされています。
今回はサーバー側の「functions.php」にコードを書き加えてクラッシュしたので、
その部分を削除したファイルをサーバーに書き込んで復旧させます。
なので、
右側のサーバー側のファイルの
「themes(テーマ)」を開き、使用中のテーマ名のファイルを開いて、
「functions.php」ファイルを探し出し開きます。
そして、
開いた「functions.php」に書き加えて不具合を引き起こした部分を削除して、
一旦、自分のパソコンのデスクトップなどにに同じ名前をつけて保存します。
次に、
自分のパソコンに保存したファイルをFFFTPの右側にドラッグ&ドロップします。
「functions.php.txt」などの名前で右側に表示されているのを確認してから、
もとの「functions.php」を削除してしまい、
「functions.php.txt」を選択してから右クリックで「名前を変更」をクリックし、
ファイル名の「.txt」を消して保存します。
④ここまでできれば、
WordPressのログイン画面が復旧しているはずです。
おめでとうございます!
そして、お疲れ様でした!
この復旧作業ができるようになると
WordPressでコードをいじるのが恐くなくなりますし、
先人達が数々の便利なコードをネット上で紹介してくれていますから、
いろいろ試してみるのもいいかもしれません。
あと、
私の体験談ですが、
WordPressのアップデートや使用中のテーマのアップデートがあると、
「functions.php」に書き加えたコードが消えてしまうことがありました。
WordPressやテーマのアップデート後は、
お申込みページや「functions.php」でコードが欠けてないかを確認する方がよさそうです。
今回は、
意外と簡単にできた、
WooCommerceで無形商品販売の際に、
住所不要にするコーディングについて、
備忘録的に書き留めてみました。
以外とそれだけのためのプラグインって見つけにくかったり、
テーマやWooCommerceとの相性が悪かったりするので、
簡単なコードなら自分で書き加えるのもありですね。
ご参考になれば幸いです。
※今回のコーディングと消費税設定について補足(2023.4.9追記)
Wooocommerceで消費税の設定をなさっている場合、デフォルトでは国別に指定した税制を適用する仕組みになっています。
“国別”の判断基準がデフォルトでは「お客様のお届け先住所」となっていることから、
今回のように住所入力を不要にしてしまうと消費税が課税されない決済となってしまいます。
これはWooocommerceで適切な設定に変更することで回避できます。
具体的にはWordPressダッシュボードのメニュー「Wooocommerce」から「設定」「税」「税オプション」「以下に基づく税の計算」項目で、「お客様のお届け先住所」や「お客様住所」ではなく「ショップの本拠地」を選択し、本拠地が日本であれば全ての注文に対して消費税課税されます。
#Wooocommerceで消費税反映されない