/* ===================================================== * Cocoon Amazon API情報取得 * * affiliate-random-items.php側の仕様に合わせる。 * URLはAPIレスポンスの DetailPageURL のみ使用。 * タグなしの https://www.amazon.co.jp/dp/ASIN はフォールバック生成しない。 * * 管理画面の確認画面でも、フロント側と同じASIN単位の * transientキャッシュを使用する。 * これにより、確認画面を開くたびにAmazon APIを呼ばないようにする。 * ===================================================== */ if ( ! function_exists( 'usaneko_affiliate_tsv_get_amazon_item' ) ) { function usaneko_affiliate_tsv_get_amazon_item( $p_StrAsin, $p_StrTitle = '' ) { $l_StrAsin = usaneko_affiliate_tsv_get_asin( $p_StrAsin ); $l_AryResult = array( 'asin' => $l_StrAsin, 'title' => trim( (string) $p_StrTitle ), 'description' => '', 'image_url' => '', 'url' => '', 'error' => '', ); if ( $l_StrAsin === '' ) { $l_AryResult['error'] = 'ASINが正しくありません。'; return $l_AryResult; } $l_StrCacheKey = 'usaneko_affiliate_widget_amazon_' . $l_StrAsin; $l_AryCached = get_transient( $l_StrCacheKey ); if ( is_array( $l_AryCached ) && empty( $l_AryCached['error'] ) && ! empty( $l_AryCached['title'] ) && ! empty( $l_AryCached['image_url'] ) && ! empty( $l_AryCached['url'] ) ) { return $l_AryCached; } if ( ! function_exists( 'get_amazon_itemlookup_json' ) ) { $l_AryResult['error'] = 'CocoonのAmazon取得関数が見つかりません。'; return $l_AryResult; } $l_StrJson = get_amazon_itemlookup_json( $l_StrAsin ); if ( ! $l_StrJson ) { $l_AryResult['error'] = 'Amazon商品情報を取得できませんでした。'; return $l_AryResult; } $l_ObjJson = json_decode( $l_StrJson ); if ( json_last_error() !== JSON_ERROR_NONE || ! is_object( $l_ObjJson ) ) { $l_AryResult['error'] = 'Amazon商品情報の解析に失敗しました。'; return $l_AryResult; } if ( isset( $l_ObjJson->Errors ) ) { $l_AryResult['error'] = 'Amazon APIからエラーが返されました。'; return $l_AryResult; } if ( ! isset( $l_ObjJson->ItemsResult ) || ! isset( $l_ObjJson->ItemsResult->Items ) || ! is_array( $l_ObjJson->ItemsResult->Items ) || empty( $l_ObjJson->ItemsResult->Items[0] ) ) { $l_AryResult['error'] = 'Amazon商品情報に商品データがありません。'; return $l_AryResult; } $l_ObjItem = $l_ObjJson->ItemsResult->Items[0]; if ( isset( $l_ObjItem->DetailPageURL ) && $l_ObjItem->DetailPageURL !== '' ) { $l_AryResult['url'] = esc_url_raw( $l_ObjItem->DetailPageURL ); } else { $l_AryResult['error'] = 'Amazon商品URLを取得できませんでした。'; return $l_AryResult; } if ( isset( $l_ObjItem->ItemInfo ) && isset( $l_ObjItem->ItemInfo->Title ) && isset( $l_ObjItem->ItemInfo->Title->DisplayValue ) && $l_ObjItem->ItemInfo->Title->DisplayValue !== '' ) { $l_AryResult['title'] = (string) $l_ObjItem->ItemInfo->Title->DisplayValue; } if ( isset( $l_ObjItem->ItemInfo ) && isset( $l_ObjItem->ItemInfo->Features ) && isset( $l_ObjItem->ItemInfo->Features->DisplayValues ) && is_array( $l_ObjItem->ItemInfo->Features->DisplayValues ) && ! empty( $l_ObjItem->ItemInfo->Features->DisplayValues ) ) { $l_AryFeatures = array(); foreach ( $l_ObjItem->ItemInfo->Features->DisplayValues as $l_StrFeature ) { $l_StrFeature = trim( (string) $l_StrFeature ); if ( $l_StrFeature !== '' ) { $l_AryFeatures[] = $l_StrFeature; } } if ( ! empty( $l_AryFeatures ) ) { $l_AryResult['description'] = implode( "\n", $l_AryFeatures ); } } if ( isset( $l_ObjItem->Images ) && isset( $l_ObjItem->Images->Primary ) && isset( $l_ObjItem->Images->Primary->Medium ) && isset( $l_ObjItem->Images->Primary->Medium->URL ) && $l_ObjItem->Images->Primary->Medium->URL !== '' ) { $l_AryResult['image_url'] = esc_url_raw( $l_ObjItem->Images->Primary->Medium->URL ); } elseif ( isset( $l_ObjItem->Images ) && isset( $l_ObjItem->Images->Primary ) && isset( $l_ObjItem->Images->Primary->Large ) && isset( $l_ObjItem->Images->Primary->Large->URL ) && $l_ObjItem->Images->Primary->Large->URL !== '' ) { $l_AryResult['image_url'] = esc_url_raw( $l_ObjItem->Images->Primary->Large->URL ); } elseif ( isset( $l_ObjItem->Images ) && isset( $l_ObjItem->Images->Primary ) && isset( $l_ObjItem->Images->Primary->Small ) && isset( $l_ObjItem->Images->Primary->Small->URL ) && $l_ObjItem->Images->Primary->Small->URL !== '' ) { $l_AryResult['image_url'] = esc_url_raw( $l_ObjItem->Images->Primary->Small->URL ); } else { $l_AryResult['error'] = 'Amazon商品画像を取得できませんでした。'; return $l_AryResult; } if ( $l_AryResult['title'] === '' ) { $l_AryResult['error'] = 'Amazon商品名を取得できませんでした。'; return $l_AryResult; } set_transient( $l_StrCacheKey, $l_AryResult, 12 * HOUR_IN_SECONDS ); return $l_AryResult; } } クラフター | ページ 4 | うさねこ散歩

クラフター

クラフター

FF14 クラフター 5.4x クラフター マクロ

暁月6.0 クラフター 低ステータス装備でまったりレベル上げ・マクロメモ漆黒 クラフター 5.4x マクロ★★★★5891(5280)新式・薬・お洒落装備暫定版マクロは実際に作成できるか確認しておりま...
クラフター

FF14 アチーブメント クポフォーチュンに導かれし者

クポフォーチュンに導かれし者うさちゃんアチーブメント「クポフォーチュンに導かれし者: ランク2 」が取れたので記念に🎵こちらのアチーブメントは、イシュガルド復興のクポフォーチュンにて、一等当選10回目...
クラフター

FF14 クポクポクラウン 【アチーブメント報酬】

入手方法:クポフォーチュンで1等に5回当選するクポフォーチュンで1等に5回当選すると貰えるアチーブメント「クポフォーチュンに導かれし者:ランク1」を取得すると交換できるようになります。交換場所アチーブ...
クラフター

FF14 カルムチェックパラソル

カルムチェックパラソルうさちゃんクポフォーチュンで2等の「カルムチェックパラソル」が当たりましたー♪FF14 チアフルチェックパラソルカルムチェックパラソルアクション「カルムチェックパラソル」を修得す...
ギャザラー

FF14 チアフルチェックパラソル

入手方法:蒼天街振興券 1,800枚5.31で追加された、「蒼天街振興券」で交換できる「チアフルチェックパラソル」です。FF14 カルムチェックパラソルチアフルチェックパラソルスクリーンショット上部か...
クラフター

FF14 クポクポチェスト

クポクポ シリーズ装備 (Patch5.21)うさちゃんクポフォーチュンで1等の「クポクポチェスト」をGET♪クポクポチェストには装備が入っているよ🎵これはパッチ5.21からの景品ですが、うさは初めて...
クラフター

FF14 フレースヴェルグチェスト

フレースヴェルグ シリーズ装備うさちゃんイシュガルド復興にて、納品ばかりしているうさです🐰貯まったクポフォーチュンをやったところ、1等の「フレースヴェルグチェスト」が当たりましたー( ・ㅂ・)و ̑̑...
クラフター

雑記 5.31うさちゃん奮闘中

高難易度レシピ 製作スキル回し 考察 (最高品質 付き)「5.21」「5.31」うさちゃん 高難易度レシピ 下準備中”心のメインはクラフター”うさちゃんの受難?ねこちゃんさあ、うさちゃん!今回もイシュ...
ギャザラー

FF14 5.31 イシュガルド復興 追加アイテム

イシュガルド復興 蒼天街復興券 追加アイテムうさちゃん5.31で追加されたイシュガルド復興の蒼天街復興券で交換できる追加アイテムです♪ねこちゃん上記の新アイテムを全て交換するためには、復興券が16,8...
ギャザラー

FF14 マウント エル・トゥ「あなたの翼に」

お得意様「エル・トゥ」クエストのストーリーに関するネタバレがあります。以下、パッチ5.3で追加されたお得意様取引「エル・トゥ」のストーリーに関するネタバレがあります。ご注意ください。入手方法:クエスト...
クラフター

FF14 クラフター 5.3x クラフター ギャザラー エースセチック(IL490)装備マクロ

クラフター 5.3x マクロクラフターLV80を前提としたマクロです。また、低レベルのレシピでも品質が上がりきる前に完成することがないよう配慮しているので、最短、最効率のマクロではありません。ちなみに...
クラフター

FF14 クラフター Lv1~Lv80 最速!? レベル上げ パッチ5.2

クラフター 効率重視 最速!? 錬金術師でチャレンジ うさちゃん5.2現在の今、ひとつのクラフタージョブをリーヴ(大口依頼)のみで上げていった場合、どれぐらいの時間、どれくらいのギルで、Lv0(クエス...
ギャザラー

FF14 蒼き緑を紡ぐ 【イシュガルド復興】クエスト

蒼き緑を紡ぐ クエストうさちゃん蒼天街ニューネスト居住区が完成すると発生すると思われるクエスト「蒼き縁を紡ぐ」内の選択肢について、メモがてら残しておきます(*´ω`*)うさちゃんうさはクエスト内の選択...
ギャザラー

FF14 【5.25】スカイスチール 装備 製作 

Lv90で短時間完成!? 光る主道具「クラフター・スカイスチール」製作緩和版まとめスカイスチール 装備うさちゃんスカイスチールツール主道具の製作方法を書いてみるよ(⋈◍>◡<◍)。✧♡事前情報の記事は...
クラフター

FF14 クラフター スカイスチール 装備 製作 5.25 マクロ

Lv90で短時間完成!? 光る主道具「クラフター・スカイスチール」製作緩和版まとめクラフター スカイスチール 装備 製作 5.25 マクロ必要ステータス作業精度2500 加工精度2300CP498*も...
ギャザラー

FF14 【5.25】スカイスチールツール バージョンアップ公開  

Lv90で短時間完成!? 光る主道具「クラフター・スカイスチール」製作緩和版まとめスカイスチールツールうさちゃんパッチ5.25で追加されるもう1つは「スカイスチールツール」主道具強化が一番の楽しみ(^...