関数
Container::buildComponents()
子コンポーネントをインスタンス化する
戻り値 戻り値
ファイル: src/Components/CheckoutReview/Container.php
public function buildComponents() {
$opts = $this->module->getActingOpts();
$mmeta = !empty($_SESSION['usces_member']['ID']) ? new MemberMeta((int)$_SESSION['usces_member']['ID']) : -1;
$buyerEmail = $_SESSION['amazonCheckoutSession']['buyer']['email'];
$welcartEmail = !empty($_SESSION['usces_member']['mailaddress1']) ? $_SESSION['usces_member']['mailaddress1'] : '';
$loadCouponForm = false;
if (defined('WCEX_COUPON')) {
$wccp = get_option('wccp');
if ($wccp['front_display'] === '0' || ($wccp['front_display'] === '1' && usces_is_login())) {
$loadCouponForm = true;
}
}
$loadPointsForm = usces_is_member_system() && usces_is_member_system_point() && usces_is_login() && usces_is_available_point();
$loadGiftForm = !usces_is_login();
$amazonCheckoutDetailsComponent = $this->getAmazonCheckoutDetailsComponent();
$purchaseButtonComponent = $this->getPurchaseButtonComponent();
$this->childComponents = [
'orderSummary' => new VueComponentLoader(
new Components\OrderSummary\OrderSummary(),
$this->filterLoadOrderSummary(true)
),
'pointsForm' => new VueComponentLoader(
new Components\PointsForm\PointsForm(),
$this->filterLoadPointsForm($loadPointsForm)
),
'couponForm' => new VueComponentLoader(
new Components\CouponForm\CouponForm(),
$this->filterLoadCouponForm($loadCouponForm)
),
'deliveryForm' => new VueComponentLoader(
new Components\DeliveryForm\DeliveryForm(),
$this->filterLoadDeliveryForm(true)
),
'notesForm' => new VueComponentLoader(
new Components\Notes\Notes(),
$this->filterLoadNotesForm($opts['quickpay_notes_field'] === 'on')
),
'giftForm' => new VueComponentLoader(
new Components\GiftForm\GiftForm(),
$this->filterLoadGiftForm($loadGiftForm)
),
'customCustomerFields' => new VueComponentLoader(
new Components\CustomFields\CustomFields([
'ident' => 'customer',
'template' => 'welcart',
/**
* Filters whether or not error messages show directly above each カスタム・フィールド on
* the Quickpay checkout review page
*
* Used for all 4 custom field types:
* - カスタム・カスタマーフィールド
* - カスタム・デリバリーフィールド
* - カスタム・オーダーフィールド
* - カスタム・メンバーフィールド
*
* @param bool $flag Default: `false`
*/
'display_errors' => apply_filters('wcexaap_checkout_review_filter_display_custom_fields_errors', false),
]),
$this->filterLoadCustomCustomerFields(!usces_is_login())
),
'customOrderFields' => new VueComponentLoader(
new Components\CustomFields\CustomFields([
'ident' => 'order',
'template' => 'welcart',
/**
* Filters whether or not error messages show directly above each カスタム・フィールド on
* the Quickpay checkout review page
*
* Used for all 4 custom field types:
* - カスタム・カスタマーフィールド
* - カスタム・デリバリーフィールド
* - カスタム・オーダーフィールド
* - カスタム・メンバーフィールド
*
* @param bool $flag Default: `false`
*/
'display_errors' => apply_filters('wcexaap_checkout_review_filter_display_custom_fields_errors', false),
]),
$this->filterLoadCustomOrderFields($opts['quickpay_custom_order_fields'] === 'on')
),
'customDeliveryFields' => new VueComponentLoader(
new Components\CustomFields\CustomFields([
'ident' => 'delivery',
'template' => 'welcart',
/**
* Filters whether or not error messages show directly above each カスタム・フィールド on
* the Quickpay checkout review page
*
* Used for all 4 custom field types:
* - カスタム・カスタマーフィールド
* - カスタム・デリバリーフィールド
* - カスタム・オーダーフィールド
* - カスタム・メンバーフィールド
*
* @param bool $flag Default: `false`
*/
'display_errors' => apply_filters('wcexaap_checkout_review_filter_display_custom_fields_errors', false),
]),
$this->filterLoadCustomDeliveryFields($opts['quickpay_custom_delivery_fields'] === 'on')
),
'amazonCheckoutDetails' => new VueComponentLoader($amazonCheckoutDetailsComponent, true),
'purchaseButton' => new VueComponentLoader($purchaseButtonComponent, true),
'registerWithAmazonForm' => new VueComponentLoader(
new Components\RegisterWithAmazon\RegisterWithAmazon(),
!usces_is_login()
),
'linkMembersToAmazonForm' => new VueComponentLoader(
new Components\LinkMembersToAmazon\LinkMembersToAmazon(),
// Amazonアカウントと連携していない場合、チェックボックスを表示する。
usces_is_login() && $mmeta->getAllowAmazonToWelcartLogin() === false && ($buyerEmail === $welcartEmail)
),
];
}