/* ===================================================== * 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; } }
Warning: Cannot modify header information - headers already sent by (output started at /home/nextymt/next-innovation-fuk.com/public_html/wp-content/themes/cocoon-child-master/affiliate/widget/affiliate-tsv-admin.php:1) in /home/nextymt/next-innovation-fuk.com/public_html/wp-includes/feed-rss2.php on line 8
不揮発性錬金薬 | うさねこ散歩 https://next-innovation-fuk.com FF14・雀魂・ガジェット・モニターの雑記サイト Tue, 17 Jan 2023 01:52:23 +0000 ja hourly 1 https://wordpress.org/?v=6.9.4 https://next-innovation-fuk.com/wp-content/uploads/2025/12/usaneko_logo_tight_560-1-150x150.png 不揮発性錬金薬 | うさねこ散歩 https://next-innovation-fuk.com 32 32 FF14 パッチ6.3「インダガトル」クラフター・ギャザラー装備 (紫貨幣・白貨幣・マクロ) https://next-innovation-fuk.com/2023/01/17/ff14-%e3%83%91%e3%83%83%e3%83%816-3%e3%80%8c%e3%82%a4%e3%83%b3%e3%83%80%e3%82%ac%e3%83%88%e3%83%ab%e3%80%8d%e3%82%af%e3%83%a9%e3%83%95%e3%82%bf%e3%83%bc%e3%83%bb%e3%82%ae%e3%83%a3%e3%82%b6%e3%83%a9/ Tue, 17 Jan 2023 01:50:00 +0000 https://next-innovation-fuk.com/?p=85394
▼続きはこちら
https://next-innovation-fuk.com/2023/01/17/ff14-%e3%83%91%e3%83%83%e3%83%816-3%e3%80%8c%e3%82%a4%e3%83%b3%e3%83%80%e3%82%ac%e3%83%88%e3%83%ab%e3%80%8d%e3%82%af%e3%83%a9%e3%83%95%e3%82%bf%e3%83%bc%e3%83%bb%e3%82%ae%e3%83%a3%e3%82%b6%e3%83%a9/]]>
FF14 暁月6.1「不揮発性錬金薬」金策にもなる!? ギャザクラ装備「パクトメーカー」製作に必要数は? https://next-innovation-fuk.com/2022/04/15/ff14-%e6%9a%81%e6%9c%886-1%e3%80%8c%e4%b8%8d%e6%8f%ae%e7%99%ba%e6%80%a7%e9%8c%ac%e9%87%91%e8%96%ac%e3%80%8d%e9%87%91%e7%ad%96%e3%81%ab%e3%82%82%e3%81%aa%e3%82%8b-%e3%82%ae%e3%83%a3%e3%82%b6%e3%82%af/ Fri, 15 Apr 2022 06:17:27 +0000 https://next-innovation-fuk.com/?p=66951
▼続きはこちら
https://next-innovation-fuk.com/2022/04/15/ff14-%e6%9a%81%e6%9c%886-1%e3%80%8c%e4%b8%8d%e6%8f%ae%e7%99%ba%e6%80%a7%e9%8c%ac%e9%87%91%e8%96%ac%e3%80%8d%e9%87%91%e7%ad%96%e3%81%ab%e3%82%82%e3%81%aa%e3%82%8b-%e3%82%ae%e3%83%a3%e3%82%b6%e3%82%af/]]>