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

目次

  • ソース
  • 関数

フック

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

ファンクション

    クラス

    Utils

    Utility methods

    ソース #ソース

    ファイル: src/Utils.php

    class Utils
    {
        const UTC_TIME_ZONE = 'UTC';
        const DATETIME_FORMAT = 'Y-m-d H:i:s';
    
        /**
         * Returns UTC `DateTime` string
         *
         * @author Evan D Shaw <evandanielshaw@gmail.com>
         * @return string
         */
        public static function getCurrentUTCDateTimeString() {
            return self::getCurrentUTCDateTime()->format(self::DATETIME_FORMAT);
        }
    
        /**
         * Returns UTC `DateTime`
         *
         * @author Evan D Shaw <evandanielshaw@gmail.com>
         * @return DateTime
         */
        public static function getCurrentUTCDateTime() {
            return (new DateTime('now', new DateTimeZone(self::UTC_TIME_ZONE)));
        }
    
        /**
         * Returns data for all Welcart items that have a post type of 'published'
         *
         * @author Evan D Shaw <evandanielshaw@gmail.com>
         * @global \wpdb $wpdb
         * @return array
         */
        public static function getAllPublishedWelcartItems() {
            global $wpdb;
    
            $welitems = [];
            $itemt = usces_get_tablename('usces_item');
            $query = $wpdb->prepare(
                "SELECT posts.ID
                FROM $wpdb->posts AS posts
                JOIN $itemt AS itemt ON itemt.post_id = posts.ID
                WHERE post_status = %s",
                'publish'
            );
            $allitems = $wpdb->get_col($query);
            if (!empty($allitems)) {
                foreach ($allitems as $alli_post_id) {
                    $welitem = self::getWelItemData($alli_post_id);
                    if (!empty($welitem)) {
                        $welitems[] = $welitem;
                    }
                }
            }
    
            return $welitems;
        }
    
        /**
         * Gets and adds extra meta data to a `welitem` array and returns it
         *
         * @author Evan D Shaw <evandanielshaw@gmail.com>
         * @param int $post_id
         * @return array
         */
        public static function getWelItemData($post_id) {
            $welitem = wel_get_product($post_id);
            if (!empty($welitem)) {
                $mainpictid = '';
                if (is_array($welitem['itemPicts']) && !empty($welitem['itemPicts'][0])) {
                    $mainpictid = (int)$welitem['itemPicts'][0];
                }
                foreach ($welitem['_sku'] as $index => $sku) {
                    $pid = $mainpictid;
                    if (!empty($sku['pict_id'])) {
                        $pid = (int)$sku['pict_id'];
                    }
                    $welitem['_sku'][$index]['images'] = [
                        'fullSizeLink' => !empty($pid) ? wp_get_attachment_image_src($pid, 'full-size', true) : '',
                        'mediumSizeLink' => !empty($pid) ? wp_get_attachment_image_src($pid, 'medium', true) : '',
                        'thumbnailLink' => !empty($pid) ? wp_get_attachment_image_src($pid, 'thumbnail', true) : '',
                    ];
                }
            }
    
            return $welitem;
        }
    
        /**
         * Gets data for an SKU
         *
         * @author Evan D Shaw <evandanielshaw@gmail.com>
         * @global \wpdb $wpdb
         * @param int $skuMetaId
         * @return array
         */
        public static function getSkuData($skuMetaId) {
            global $wpdb;
    
            $sku_table = usces_get_tablename('usces_skus');
            $res = $wpdb->get_row(
                $wpdb->prepare(
                    "SELECT * FROM {$sku_table} WHERE meta_id = %d",
                    $skuMetaId
                ),
                ARRAY_A
            );
            if (empty($res)) {
                return [];
            }
    
            $welitem = new \Welcart\ItemData($res['post_id']);
            if (empty($welitem)) {
                return [];
            }
    
            $product = $welitem->get_product();
            $sku = $welitem->get_sku_by_id($skuMetaId);
            if (empty($sku)) {
                return [];
            }
    
            $pictid = '';
            if (is_array($product['itemPicts']) && !empty($product['itemPicts'][0])) {
                $pictid = (int)$product['itemPicts'][0];
            }
            if (!empty($sku['pict_id'])) {
                $pictid = (int)$sku['pict_id'];
            }
            $sku['images'] = [
                'fullSizeLink' => !empty($pictid) ? wp_get_attachment_image_src($pictid, 'full-size', true) : '',
                'mediumSizeLink' => !empty($pictid) ? wp_get_attachment_image_src($pictid, 'medium', true) : '',
                'thumbnailLink' => !empty($pictid) ? wp_get_attachment_image_src($pictid, 'thumbnail', true) : '',
            ];
    
            return [
                'item' => $product,
                'sku' => $sku,
            ];
        }
    
        /**
         * Checks whether an SKU exists and returns its post ID
         *
         * @author Evan D Shaw <evandanielshaw@gmail.com>
         * @global \wpdb $wpdb
         * @param int $skuMetaId
         * @return GenericError|int post ID if exists
         */
        public static function getSkuPostId($skuMetaId) {
            global $wpdb;
    
            $sku_table = usces_get_tablename('usces_skus');
            $postId = (int)$wpdb->get_var(
                $wpdb->prepare(
                    "SELECT post_id FROM {$sku_table} WHERE meta_id = %d",
                    $skuMetaId
                )
            );
            if ($postId < 1) {
                return Master::getErrorStore()->getErrorResponse(
                    ErrorStore::SKU_NOT_FOUND,
                    [$skuMetaId],
                    [],
                    [$skuMetaId]
                );
            }
    
            return $postId;
        }
    
        /**
         * Returns `true` if the SKU is a group item in any combo-sets, `false` otherwise
         *
         * @author Evan D Shaw <evandanielshaw@gmail.com>
         * @global \wpdb $wpdb
         * @param int $skuMetaId
         * @return bool
         */
        public static function isGroupItem($skuMetaId) {
            global $wpdb;
    
            $csgit = Schema::getComboSetGroupItemsTable();
            return (bool)(int)$wpdb->get_var(
                $wpdb->prepare(
                    "SELECT COUNT(ID) FROM {$csgit} WHERE welitem_sku_meta_id = %d",
                    (int)$skuMetaId
                )
            );
        }
    
        /**
         * Returns full size and thumbnail size SKU image. Defaults to item image if no
         * SKU image was found.
         *
         * @author Evan D Shaw <evandanielshaw@gmail.com>
         * @param int $skuMetaId
         * @return string[]
         */
        public static function getSkuImageLinks($skuMetaId) {
            global $wpdb, $usces;
    
            $defaultres = [
                'fullSizeLink' => '',
                'thumbnailLink' => '',
            ];
    
            $data = $wpdb->get_row(
                $wpdb->prepare(
                    "SELECT * FROM {$wpdb->postmeta} WHERE meta_id = %d AND meta_key = '_isku_'",
                    (int)$skuMetaId
                ),
                ARRAY_A
            );
    
            if (empty($data)) {
                return $defaultres;
            }
    
            $skudata = unserialize($data['meta_value']);
            if (empty($skudata)) {
                return $defaultres;
            }
    
            $imgid = $usces->get_subpictid($skudata['code']);
            if (empty($imgid)) {
                $imgid = $usces->get_mainpictid($usces->getItemCode($data['post_id']));
            }
    
            $imgid = !empty($imgid) ? $imgid : 0;
    
            return [
                'fullSizeLink' => wp_get_attachment_image_src($imgid, 'full-size', true),
                'mediumSizeLink' => wp_get_attachment_image_src($imgid, 'medium', true),
                'thumbnailLink' => wp_get_attachment_image_src($imgid, 'thumbnail', true),
            ];
        }
    }
    

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


    関数 #関数

    Top ↑

    • getAllPublishedWelcartItems — Returns data for all Welcart items that have a post type of 'published'
    • getCurrentUTCDateTime — Returns UTC `DateTime`
    • getCurrentUTCDateTimeString — Returns UTC `DateTime` string
    • getSkuData — Gets data for an SKU
    • getSkuImageLinks — Returns full size and thumbnail size SKU image. Defaults to item image if no SKU image was found.
    • getSkuPostId — Checks whether an SKU exists and returns its post ID
    • getWelItemData — Gets and adds extra meta data to a `welitem` array and returns it
    • isGroupItem — Returns `true` if the SKU is a group item in any combo-sets, `false` otherwise

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

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

    ※Amazon、Amazon.co.jp、Amazon Payおよびそれらのロゴは、Amazon.com,inc.またはその関連会社の商標です。

    © 2025 Aivec llc All Rights Reserved.