• プラグイン一覧
    - WCEX Item Combo Set
    - WCEX Amazon Pay
    - WCEX Wishlist お気に入りリスト
  • リリース情報
  • お役立ちコラム
  • お問い合わせ
  • サポート
    • よくある質問
      • WCEX Amazon Pay
      • WCEX Wishlist お気に入りリスト
      • wcex-item-combo-set
    • リファレンス
      • WCEX Amazon Pay
      • WCEX Wishlist お気に入りリスト
      • wcex-item-combo-set
新規会員登録
ログイン
新規会員登録
ログイン
カート
  • プラグイン一覧
    • - WCEX Item Combo Set
    • - WCEX Amazon Pay
    • - WCEX Wishlist お気に入りリスト
  • リリース情報
  • お役立ちコラム
  • サポート
    • - よくある質問
      • - WCEX Amazon Pay
      • - WCEX Wishlist お気に入りリスト
      • - wcex-item-combo-set
    • - リファレンス
      • - WCEX Amazon Pay
      • - WCEX Wishlist お気に入りリスト
      • - wcex-item-combo-set
  • お問い合わせ
Aivec APPs > WCEX Amazon Pay > クラス > DeliveryForm
レファレンス
バージョン
2.6.4
絞り込み:

目次

  • ソース
  • 関数

フック

  • アクション
  • フィルター

ファンクション

    クラス

    DeliveryForm

    Delivery form Vue component

    ソース #ソース

    ファイル: src/Components/DeliveryForm/DeliveryForm.php

    class DeliveryForm extends VueComponent
    {
        /**
         * Registers hooks for delivery form
         *
         * @author Evan D Shaw <evandanielshaw@gmail.com>
         * @return void
         */
        public function init() {
            add_action('wp_enqueue_scripts', function () {
                $semantic = new Semantic();
                $semantic->loadSegmentCss();
                $semantic->loadDimmerCss();
            });
    
            add_action('wcexaap_checkout_review_delivery_method', [$this, 'deliveryMethod'], 10, 2);
            add_action('wcexaap_checkout_review_delivery_date', [$this, 'deliveryDate'], 10, 2);
            add_action('wcexaap_checkout_review_delivery_time', [$this, 'deliveryTime'], 10, 2);
        }
    
        /**
         * Returns component name as is recognized by Vue.
         *
         * @author Evan D Shaw <evandanielshaw@gmail.com>
         * @return string
         */
        public function getComponentName() {
            return 'deliveryFormComponent';
        }
    
        /**
         * Prints delivery form component template
         *
         * @author Evan D Shaw <evandanielshaw@gmail.com>
         * @global array $usces_entries
         * @return void
         */
        public function template() {
            global $usces_entries;
    
            $propsAndEvents = [];
            if ($this->controlledComponent === true) {
                $propsAndEvents[] = 'v-bind:loading-prop="loading"';
                $propsAndEvents[] = 'v-bind:purchase-payload="purchasePayload"';
                $propsAndEvents[] = '@update-payload="updatePayload"';
                $propsAndEvents[] = '@update-order="updateOrder"';
                $propsAndEvents[] = '@update-loading="updateLoading"';
                $propsAndEvents[] = '@update-error-messages="updateErrorMessages"';
            }
            $allPropsAndEvents = join(' ', $propsAndEvents);
            ?>
            <delivery-form-component
                inline-template
                delivery-method-session-val="<?php echo $this->getDeliveryMethodValue(); ?>"
                <?php echo $allPropsAndEvents; ?>
            >
                <?php ob_start(); ?>
                <div>
                    <div v-cloak v-if="errorMessage" class="error_message" v-html="errorMessage"></div>
                    <div class="ui basic blurring segment">
                        <div v-if="loading" class="ui inverted light active dimmer"></div>
                        <table class="customer_form fade" id="time">
                            <input type="hidden" id="delivery_pref" value="" />
                            <?php if (usces_have_shipped()) : ?>
                                <tr>
                                    <th scope="row"><?php echo esc_html__('shipping option', 'usces'); ?></th>
                                    <td colspan="2">
                                        <?php $this->deliveryMethod(); ?>
                                    </td>
                                </tr>
                                <tr>
                                    <th scope="row"><?php echo esc_html__('Delivery date', 'usces'); ?></th>
                                    <td colspan="2">
                                        <?php $this->deliveryDate(
                                            $usces_entries['order']['delivery_date']
                                        ); ?>
                                    </td>
                                </tr>
                                <tr>
                                    <th scope="row"><?php echo esc_html__('Delivery Time', 'usces'); ?></th>
                                    <td colspan="2">
                                        <?php $this->deliveryTime(
                                            $usces_entries['order']['delivery_time']
                                        ); ?>
                                    </td>
                                </tr>
                            <?php endif; ?>
                        </table>
                    </div>
                </div>
                <?php $vuehtml = ob_get_contents(); ?>
                <?php ob_end_clean(); ?>
                <?php
                /**
                 * Filters the delivery form Vue HTML shown on the Quickpay page
                 *
                 * @param string                                                                          $vuehtml
                 * @param \Aivec\Welcart\SettlementModules\AmazonPay\Components\DeliveryForm\DeliveryForm $instance
                 */
                echo apply_filters('wcexaap_checkout_review_filter_delivery_form', $vuehtml, $this);
                ?>
            </delivery-form-component>
            <?php
        }
    
        /**
         * Returns delivery method ID from `$usces_entries['order']['delivery_method']`
         *
         * @author Evan D Shaw <evandanielshaw@gmail.com>
         * @global \usc_e_shop $usces
         * @return int
         */
        public function getDeliveryMethodValue() {
            global $usces;
    
            $sessionVal = isset($_SESSION['usces_entry']['order']['delivery_method'])
                ? $_SESSION['usces_entry']['order']['delivery_method']
                : 0;
            /**
             * Mirrored Welcart filter
             *
             * @ignore
             */
            $deli_id = apply_filters(
                'usces_filter_get_available_delivery_method',
                $usces->get_available_delivery_method()
            );
    
            if (empty($deli_id)) {
                return 1;
            }
    
            $cdeliid = count($deli_id);
            foreach ($deli_id as $id) {
                $index = $usces->get_delivery_method_index($id);
                if (0 <= $index) {
                    if ((int)$id === (int)$sessionVal || 1 === $cdeliid) {
                        return $id;
                    }
                }
            }
    
            return 1;
        }
    
        /**
         * Injects Vue bindings into html delivery method inputs.
         *
         * @author Evan D Shaw <evandanielshaw@gmail.com>
         * @global \usc_e_shop $usces
         * @return void
         */
        public function deliveryMethod() {
            global $usces;
    
            /**
             * Mirrored Welcart filter
             *
             * @ignore
             */
            $deli_id = apply_filters(
                'usces_filter_get_available_delivery_method',
                $usces->get_available_delivery_method()
            );
            if (empty($deli_id)) {
                $html = '<p>' . __('No valid shipping methods.', 'usces') . '</p>';
            } else {
                $html = '<select
                    name="offer[delivery_method]"
                    id="delivery_method_select"
                    class="delivery_time"
                    onKeyDown="if (event.keyCode == 13) {return false;}"
                >' . "\n";
                foreach ($deli_id as $id) {
                    $index = $usces->get_delivery_method_index($id);
                    if (0 <= $index) {
                        $html .= "\t<option
                            value='{$id}'>
                            " . esc_html($usces->options['delivery_method'][$index]['name']) . "
                        </option>\n";
                    }
                }
    
                $html .= "</select>\n";
            }
    
            /**
             * Filters the delivery form method select HTML shown on the Quickpay page
             *
             * @param string $html
             * @param array  $deli_id
             */
            $html = apply_filters('wcexaap_checkout_review_filter_delivery_method', $html, $deli_id);
            echo $html;
        }
    
        /**
         * Injects Vue bindings into delivery date inputs.
         *
         * @param string $value
         * @param string $out
         * @return mixed
         */
        public function deliveryDate($value = '', $out = '') {
            $html = "<select
                name='offer[delivery_date]'
                id='delivery_date_select'
                class='delivery_date'
            >\n";
            $html .= "</select>\n";
    
            /**
             * Filters the delivery form date select HTML shown on the Quickpay page
             *
             * @param string $html
             */
            $html = apply_filters('wcexaap_checkout_review_filter_delivery_date', $html);
    
            if ($out == 'return') {
                return $html;
            } else {
                echo $html;
            }
        }
    
        /**
         * Injects Vue bindings into delivery time inputs.
         *
         * @param string $value
         * @param string $out
         * @return mixed
         */
        public function deliveryTime($value = '', $out = '') {
            $html = "<div id='delivery_time_limit_message'></div>\n";
            $html .= "<select
                name='offer[delivery_time]'
                id='delivery_time_select'
                class='delivery_time'
            >\n";
    
            $html .= "</select>\n";
    
            /**
             * Filters the delivery form time select HTML shown on the Quickpay page
             *
             * @param string $html
             */
            $html = apply_filters('wcexaap_checkout_review_filter_delivery_time', $html);
    
            if ($out == 'return') {
                return $html;
            } else {
                echo $html;
            }
        }
    }
    

    ソースを伸ばす ソースを縮める


    関数 #関数

    Top ↑

    • deliveryDate — Injects Vue bindings into delivery date inputs.
    • deliveryMethod — Injects Vue bindings into html delivery method inputs.
    • deliveryTime — Injects Vue bindings into delivery time inputs.
    • getComponentName — Returns component name as is recognized by Vue.
    • getDeliveryMethodValue — Returns delivery method ID from `$usces_entries['order']['delivery_method']`
    • init — Registers hooks for delivery form
    • template — Prints delivery form component template

    • 新規会員登録
    • ログイン
      • プラグイン一覧
      • 会社概要
      • リリース情報
      • よくある質問
      • お役立ちコラム
      • お問い合わせ
      • 個人情報保護方針
      • 特定商取引法に基づく表記
      • 情報セキュリティ基本方針
      • 利用規約

    アイベック合同会社は「Welcart」「Amazon Pay」の公式パートナーです。

    ※Amazon、Amazon.co.jp、Amazon Payおよびそれらのロゴは、Amazon.com,inc.またはその関連会社の商標です。
    ※LINE Pay、およびLINE Pay 提携サービスのロゴは、法律上保護を受ける商標です。

    © 2025 Aivec llc All Rights Reserved.