• プラグイン一覧
    - 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 > クラス > Semantic
レファレンス
バージョン
2.6.4
絞り込み:

目次

  • ソース
  • 関数

フック

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

ファンクション

    クラス

    Semantic

    Displays custom customer or member fiels

    ソース #ソース

    ファイル: src/Components/CustomFields/Templates/Semantic.php

    class Semantic
    {
        /**
         * Flag for custom fields meta
         *
         * @var boolean
         */
        public $hasCustomFields;
    
        /**
         * Array of custom fields
         *
         * @var array
         */
        public $customFields;
    
        /**
         * Sets custom fields
         *
         * @author Evan D Shaw <evandanielshaw@gmail.com>
         * @param boolean $hasCustomFields
         * @param array   $customFields
         * @return void
         */
        public function __construct($hasCustomFields, $customFields) {
            $this->hasCustomFields = $hasCustomFields;
            $this->customFields = $customFields;
        }
    
        /**
         * Loads assets for this template
         *
         * @author Evan D Shaw <evandanielshaw@gmail.com>
         * @return void
         */
        public function init() {
            add_action('wp_enqueue_scripts', function () {
                $load_dropdown = false;
                $load_checkbox = false;
                if ($this->hasCustomFields === true) {
                    foreach ($this->customFields as $key => $vals) {
                        if ($vals['means'] === 3 || $vals['means'] === 4) {
                            $load_checkbox = true;
                        } elseif ($vals['means'] === 0 || $vals['means'] === 1) {
                            $load_dropdown = true;
                        }
                    }
                }
    
                $semantic = new ScriptsSemantic();
                $semantic->loadInputCss();
                $semantic->loadFormCss();
    
                if ($load_checkbox === true) {
                    $semantic->loadCheckboxCss();
                }
    
                if ($load_dropdown === true) {
                    $semantic->loadDropdownCss();
                }
            });
        }
    
        /**
         * Displays custom fields meta.
         *
         * @author Evan D Shaw <evandanielshaw@gmail.com>
         * @param array  $data
         * @param string $custom_field
         * @param string $position
         * @return void
         */
        public function uscesCustomFieldInput($data, $custom_field, $position) {
            global $usces_essential_mark;
    
            $label = 'custom_' . $custom_field;
    
            $meta = usces_has_custom_field_meta($custom_field);
    
            ob_start();
            if (!empty($meta) && is_array($meta)) {
                foreach ($meta as $key => $entry) {
                    if ($custom_field === 'order' || $entry['position'] === $position) {
                        $name = $entry['name'];
                        $means = (int)$entry['means'];
                        $essential = (int)$entry['essential'];
                        $value = '';
                        if (is_array($entry['value'])) {
                            foreach ($entry['value'] as $k => $v) {
                                $value .= $v . "\n";
                            }
                        }
                        $value = usces_change_line_break($value);
    
                        $e = '';
                        if ($essential === 1) {
                            $e = isset($usces_essential_mark[$key])
                                ? usces_get_essential_mark($key)
                                : '<em>' . __('*', 'usces') . '</em>';
                        }
                        /**
                         * Mirrored Welcart filter
                         *
                         * @ignore
                         */
                        $heading = $e . esc_html($name) . apply_filters(
                            'usces_filter_custom_field_input_label',
                            null,
                            $key,
                            $entry
                        );
                        switch ($means) {
                            case 0: // シングルセレクト
                            case 1: // マルチセレクト NOTE: multi-select isnt an option for custom fields
                                $selects = explode("\n", $value);
                                ?>
                                <div class="field">
                                    <label><?php echo $heading ?></label>
                                    <select
                                        v-model="customFields.<?php echo esc_attr($key) ?>.value"
                                        name="<?php echo esc_attr($label) ?>[<?php echo esc_attr($key) ?>]"
                                        class="ui dropdown"
                                    >
                                        <option value="#NONE#"><?php echo esc_html__('Choose', 'usces') ?></option>
                                        <?php
                                        foreach ($selects as $v) :
                                            $selected = (isset($data[$label][$key]) && $data[$label][$key] == $v)
                                                ? ' selected'
                                                : '';
                                            ?>
                                            <option value="<?php echo esc_attr($v) ?>" <?php echo esc_attr($selected) ?>>
                                                <?php echo esc_html($v) ?>
                                            </option>
                                            <?php
                                        endforeach;
                                        ?>
                                    </select>
                                </div>
                                <!-- <div v-cloak v-if="errorMessages.<?php // echo esc_attr($key) ?>" class="error_message">
                                    <?php // echo '{{ errorMessages.' . esc_attr($key) . '}}' ?>
                                </div> -->
                                <?php
                                break;
                            case 2: // テキスト
                                ?>
                                <div class="field">
                                    <label><?php echo $heading ?></label>
                                    <input
                                        type="text"
                                        v-model="customFields.<?php echo esc_attr($key) ?>.value"
                                        name="<?php echo esc_attr($label) ?>[<?php echo esc_attr($key) ?>]"
                                    >
                                </div>
                                <?php
                                break;
                            case 3: // ラジオボタン
                                ?>
                                <div class="grouped fields customkey_<?php echo esc_attr($key) ?>">
                                    <label><?php echo $heading ?></label>
                                    <?php
                                    $selects = explode("\n", $value);
                                    foreach ($selects as $v) :
                                        $checked = (isset($data[$label][$key]) && $data[$label][$key] == $v)
                                            ? ' checked'
                                            : '';
                                        ?>
                                        <div class="field">
                                            <div class="ui radio checkbox">
                                                <input
                                                    type="radio"
                                                    v-model="customFields.<?php echo esc_attr($key) ?>.value"
                                                    name="<?php echo esc_attr($label) ?>[<?php echo esc_attr($key) ?>]"
                                                    id="<?php echo esc_attr($label) ?>[<?php echo esc_attr($key) ?>][<?php echo esc_attr($v) ?>]"
                                                    value="<?php echo esc_attr($v) ?>"<?php echo esc_attr($checked) ?>
                                                >
                                                <label class="iopt_label"><?php echo esc_html($v) ?></label>
                                            </div>
                                        </div>
                                        <?php
                                    endforeach;
                                    ?>
                                </div>
                                <?php
                                break;
                            case 4: // チェックボックス
                                $selects = explode("\n", $value);
                                ?>
                                <div class="grouped fields customkey_<?php echo esc_attr($key) ?>">
                                    <label><?php echo $heading ?></label>
                                    <?php
                                    foreach ($selects as $v) :
                                        if (isset($data[$label][$key]) && is_array($data[$label][$key])) {
                                            $checked = (isset($data[$label][$key]) && array_key_exists($v, $data[$label][$key]))
                                                ? ' checked'
                                                : '';
                                        } else {
                                            $checked = (isset($data[$label][$key]) && $data[$label][$key] == $v)
                                                ? ' checked'
                                                : '';
                                        }
                                        ?>
                                        <div class="field">
                                            <div class="ui checkbox">
                                                <input
                                                    type="checkbox"
                                                    v-model="customFields.<?php echo esc_attr($key) ?>.value[<?php echo '\'' . esc_attr($v) . '\'' ?>]"
                                                    name="<?php echo esc_attr($label) ?>[<?php echo esc_attr($key) ?>][<?php echo esc_attr($v) ?>]"
                                                    value="<?php echo esc_attr($v) ?>"<?php echo esc_attr($checked) ?>
                                                >
                                            <label><?php echo esc_html($v) ?></label>
                                            </div>
                                        </div>
                                        <?php
                                    endforeach;
                                    ?>
                                </div>
                                <?php
                                break;
                            case 5: // Text-area
                                ?>
                                <div class="field">
                                    <label><?php echo $heading ?></label>
                                    <textarea
                                        v-model="customFields.<?php echo esc_attr($key) ?>.value"
                                        name="<?php echo esc_attr($label) ?>[<?php echo esc_attr($key) ?>]"
                                    ></textarea>
                                </div>
                                <?php
                                break;
                        }
                    }
                }
            }
    
            $html = ob_get_clean();
            if (!empty($html)) {
                $html = '<div class="ui form aap" id="' . esc_attr('custom_' . $custom_field) . '">' . $html . '</div>';
            }
            /**
             * Filters the custom fields HTML shown on the Quickpay page
             *
             * @param string $html
             * @param array  $data
             * @param string $custom_field
             * @param string $position
             */
            $html = apply_filters('wcexaap_filter_custom_field_input', $html, $data, $custom_field, $position);
    
            echo stripslashes($html);
        }
    }
    

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


    関数 #関数

    Top ↑

    • __construct — Sets custom fields
    • init — Loads assets for this template
    • uscesCustomFieldInput — Displays custom fields meta.

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

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

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

    © 2025 Aivec llc All Rights Reserved.