現在お買い物カゴには何も入っていません。
ドキュメント
マウスオーバーか長押しで説明を表示。
カスタマイズ3
マーケットプレイス(マルチベンダー)型のサイトに対応
マーケットプレイス(マルチベンダー)型のサイトとは、自サイトの中に、複数の販売業者を入れて運営するショッピングサイトの事です。WooCommerce は標準で対応していないので、何らかのプラグイン(無料・有料)を入れる必要があります。無料のものを幾つか見てみましたが、見たものは全て、WordPress のユーザー単位で販売業者を切り分けていました。また、独自のユーザー用の管理画面を所有し、WordPress の管理画面が見えないようにしているプラグインがほとんどなので、PDF Invoice Japan for WooCommerce の管理画面をユーザーに見せるようにするのは現実的でありません。そこで、すべてフィルターで対応する事にしました。
WooCommerce は、商品 ID を持ちますが、その ID を作成したユーザー ID を、PDF Invoice Japan for WooCommerce の中で取得し、フィルターに受け渡します。フィルター内では、WordPress のユーザー ID で処理を振り分けていただくという形になります。
以下は、各販売者独自のものになり、必須と思われるものの例です。
/** ==================================================
* 「店舗の郵便番号」
* マーケットプレイス型サイト運用で販売者単位で変更する場合は
* $vendor_id で振り分ける
* invoice_japan_store_postcode
*/
add_filter(
'invoice_japan_store_postcode',
function( $store_postcode, $vendor_id ) {
/* case の番号は、販売者のユーザーIDを指定 */
switch ( $vendor_id ) {
case 3:
$store_postcode = '123-4567';
break;
case 5:
$store_postcode = '765-4321';
break;
}
return $store_postcode;
},
10,
2
);
/** ==================================================
* 「店舗の住所」
* マーケットプレイス型サイト運用で販売者単位で変更する場合は
* $vendor_id で振り分ける
* invoice_japan_store_address
*/
add_filter(
'invoice_japan_store_address',
function( $store_address, $vendor_id ) {
/* case の番号は、販売者のユーザーIDを指定 */
switch ( $vendor_id ) {
case 3:
$store_address = '東京都テスト区てすと町123';
break;
case 5:
$store_address = '東京都てすと区テスト町321';
break;
}
return $store_address;
},
10,
2
);
/** ==================================================
* 「店舗の付記情報」
* マーケットプレイス型サイト運用で販売者単位で変更する場合は
* $vendor_id で振り分ける
* (注)改行コード "\n" を付加して改行する
* invoice_japan_add_text
*/
add_filter(
'invoice_japan_add_text',
function( $add_text, $vendor_id ) {
/* case の番号は、販売者のユーザーIDを指定 */
switch ( $vendor_id ) {
case 3:
$add_text = 'Tel 03-4567-8091' . "\n";
$add_text .= 'Fax 03-4567-8092';
break;
case 5:
$add_text = 'Tel 06-5674-9801' . "\n";
$add_text .= 'Tel 06-5674-9802';
break;
}
return $add_text;
},
10,
2
);
/** ==================================================
* 「インボイス番号」
* マーケットプレイス型サイト運用で販売者単位で変更する場合は
* $vendor_id で振り分ける
* invoice_japan_number
*/
add_filter(
'invoice_japan_number',
function( $invoice_number, $vendor_id ) {
/* case の番号は、販売者のユーザーIDを指定 */
switch ( $vendor_id ) {
case 3:
$invoice_number = 'T2345678901201';
break;
case 5:
$invoice_number = 'T5678901201234';
break;
}
return $invoice_number;
},
10,
2
);
/** ==================================================
* 「備考」
* マーケットプレイス型サイト運用で販売者単位で変更する場合は
* $vendor_id で振り分ける
* invoice_japan_remark_{order(注文)か、refund(払い戻し)}_{決済方法(設定->決済のクエリパラメータ section の値) }
*/
add_filter(
'invoice_japan_remark_order_bankjp',
function( $remark, $vendor_id ) {
/* case の番号は、販売者のユーザーIDを指定 */
switch ( $vendor_id ) {
case 3:
$remark = '〇×銀行の口座へお振込みください。';
break;
case 5:
$remark = '×△銀行の口座へお振込みください。';
break;
}
return $remark;
},
10,
2
);
/** ==================================================
* 「払戻明細書の払戻方法」
* マーケットプレイス型サイト運用で販売者単位で変更する場合は
* $vendor_id で振り分ける
* invoice_japan_refund_text_{決済方法(設定->決済のクエリパラメータ section の値) }
*/
add_filter(
'invoice_japan_refund_text_bankjp',
function( $refund_text, $vendor_id ) {
/* case の番号は、販売者のユーザーIDを指定 */
switch ( $vendor_id ) {
case 3:
$refund_text = '銀行振込';
break;
case 5:
$refund_text = '現金書留';
break;
}
return $refund_text;
},
10,
2
);
/** ==================================================
* 「手数料」
* マーケットプレイス型サイト運用で販売者単位で変更する場合は
* $vendor_id で振り分ける
* invoice_japan_fee_text
*/
add_filter(
'invoice_japan_fee_text',
function( $fee_text, $vendor_id ) {
/* case の番号は、販売者のユーザーIDを指定 */
switch ( $vendor_id ) {
case 3:
$fee_text = 'クレジットカード手数料';
break;
case 5:
$fee_text = 'QUICPay 手数料';
break;
}
return $fee_text;
},
10,
2
);
マウスオーバーか長押しで説明を表示。