「アフィリエイト商品のHTML」の「フッターのHTMLに関する情報」を作成する

「アフィリエイト商品のHTML」の「フッターのHTMLに関する情報」を作成する処理について、PHPソースコードを解説しています。

「フッターのHTMLに関する情報」には、以下のものがあります。

  • 「アフィリエイト商品のHTML」の「フッタータグを特定するID(識別名)」
  • 「アフィリエイト商品のHTML」の「フッタータグ」

「フッタータグを特定するID(識別名)」は、価格の「詳細はこちら」aタグで、リンク先として使用されます。

このIDによって、一意の「フッタータグ」をリンク先として特定できます。

「フッタータグ」は、「価格の詳細」に関する説明文が記述されているタグです。

「フッターのHTMLに関する情報」は、「アフィリエイト商品のHTML」のフッター部分を作成する際に、必要な情報を保持しています。

「アフィリエイト商品のHTML」の「フッターのHTMLに関する情報」を作成する

public static function makeFooterHTMLInfo(ItemHTMLOption $itemHTMLOption): FooterHTMLInfo {

	$footerID;
	$footerDiv; // 今の所、価格詳細専用のフッターとなっている。

	$priceItemHTMLOption = $itemHTMLOption->getPriceItemHTMLOption ();
	$priceFooterText = $priceItemHTMLOption->getPriceFooterText ();

	if ($priceFooterText) {

		$idPrefix = $itemHTMLOption->getIdPrefix ();
		$footerDisplayTime = DateTextMaking::getUnixTimeMillSecond (); // フッターが表示された時間
		$footerTimeText = DateTextMaking::makeUnixTimeIDText ( 
				DateTextMaking::UNIX_TIME_ID_FORMAT, $footerDisplayTime );

		$footerID = GOODS_MEMO_PREFIX . "-" . $idPrefix . "-items-footer-" . $footerTimeText; // 念のため、ページ内にフッターが2個以上ある場合に対応
		$footerDiv = <<< EOD
		<div id="{$footerID}" class="footer">{$priceFooterText}</div>
		EOD;

		$showState = $priceItemHTMLOption->getPriceTimeLinkVisible ();
		if ($showState === false) {
			$footerID = ""; // 価格時刻の「詳細はこちら」リンクを非表示にする。
		}
	} else {

		$footerID = "";
		$footerDiv = "";
	}

	$footerHTMLInfo = new FooterHTMLInfo ();
	$footerHTMLInfo->setFooterID ( $footerID );
	$footerHTMLInfo->setFooterDiv ( $footerDiv );

	return $footerHTMLInfo;
}

「アフィリエイト商品のHTML」の「フッタータグを特定するID(識別名)」を保持する$footerID変数の例。

goodsmemo-amazon-items-footer-2023-04-15-16-58-58-87

「アフィリエイト商品のHTML」の「フッタータグ」を保持する$footerDiv変数の例。

<div id="goodsmemo-amazon-items-footer-2023-04-15-16-58-58-87" class="footer">
価格の詳細:価格および発送可能時期は表示された日付/時刻の時点のものであり、変更される場合があります。
本商品の購入においては、購入の時点でAmazon.co.jpに表示されている価格および発送可能時期の情報が適用されます。
</div>

makeFooterHTMLInfo()関数は、

「アフィリエイト商品のHTML」の「フッターのHTMLに関する情報」を作成します。

「フッターのHTMLに関する情報」には、以下のものがあります。

  • 「アフィリエイト商品のHTML」の「フッタータグを特定するID(識別名)」
  • 「アフィリエイト商品のHTML」の「フッタータグ」

$priceFooterText変数は、「価格詳細のフッター文字列」を保持します。

「価格詳細のフッター文字列」が存在する場合、
「フッターのHTMLに関する情報」を作成します。

「フッタータグ」を特定するIDを作成して、$footerID変数に代入します。
「フッタータグ」を作成して、$footerDiv変数に代入します。

「価格詳細のフッター文字列」が無い場合、
「フッターのHTMLに関する情報」を作成しません。

この場合、情報が無いことを示す空文字を、以下の変数に代入します。

空文字を、$footerID変数に代入します。
空文字を、$footerDiv変数に代入します。

$footerHTMLInfo変数は、「フッターのHTMLに関する情報」を保持する変数です。

作成した「フッターのHTMLに関する情報」を、$footerHTMLInfo変数に設定します。

$footerID変数を、$footerHTMLInfo変数に設定します。
$footerDiv変数を、$footerHTMLInfo変数に設定します。

その$footerHTMLInfo変数は、return文で返されます。

「価格詳細のフッター文字列」が存在する場合、「フッターのHTMLに関する情報」を作成する

$priceItemHTMLOption = $itemHTMLOption->getPriceItemHTMLOption ();
$priceFooterText = $priceItemHTMLOption->getPriceFooterText ();

if ($priceFooterText) {

	$idPrefix = $itemHTMLOption->getIdPrefix ();
	$footerDisplayTime = DateTextMaking::getUnixTimeMillSecond (); // フッターが表示された時間
	$footerTimeText = DateTextMaking::makeUnixTimeIDText ( 
			DateTextMaking::UNIX_TIME_ID_FORMAT, $footerDisplayTime );

	$footerID = GOODS_MEMO_PREFIX . "-" . $idPrefix . "-items-footer-" . $footerTimeText; // 念のため、ページ内にフッターが2個以上ある場合に対応
	$footerDiv = <<< EOD
	<div id="{$footerID}" class="footer">{$priceFooterText}</div>
	EOD;

	$showState = $priceItemHTMLOption->getPriceTimeLinkVisible ();
	if ($showState === false) {
		$footerID = ""; // 価格時刻の「詳細はこちら」リンクを非表示にする。
	}
}

「価格詳細のフッター文字列」が存在する場合、「フッターのHTMLに関する情報」を作成します。

「フッターのHTMLに関する情報」には、以下のものがあります。

  • 「アフィリエイト商品のHTML」の「フッタータグを特定するID(識別名)」
  • 「アフィリエイト商品のHTML」の「フッタータグ」

「価格詳細のフッター文字列」を取得する

$priceItemHTMLOption = $itemHTMLOption->getPriceItemHTMLOption ();
$priceFooterText = $priceItemHTMLOption->getPriceFooterText ();

「価格詳細のフッター文字列」を保持する$priceFooterText変数の例。

価格の詳細:価格および発送可能時期は表示された日付/時刻の時点のものであり、変更される場合があります。
本商品の購入においては、購入の時点でAmazon.co.jpに表示されている価格および発送可能時期の情報が適用されます。

$itemHTMLOption変数は、ItemHTMLOptionクラスの変数です。

ItemHTMLOptionクラスは、「商品のHTML作成に関する設定値」を管理するクラスです。

以下の設定値を管理します。

  • 当プラグインの「ショートコードの属性値」で、「商品のHTML作成に関する設定値」。
  • 当プラグインの「アフィリエイトの設定」で、「商品のHTML作成に関する設定値」。

$itemHTMLOption->getPriceItemHTMLOption()メソッドを用いて、
$priceItemHTMLOption変数に、「商品価格のHTML作成に関する設定値」を代入します。

$priceItemHTMLOption変数は、PriceItemHTMLOptionクラスの変数です。

PriceItemHTMLOptionクラスは、「商品価格のHTML作成に関する設定値」を管理するクラスです。

以下の設定値を管理します。

  • 価格詳細のフッター文字列
  • 価格の「詳細はこちら」リンクの「表示の有効性」

$priceItemHTMLOption->getPriceFooterText()メソッドを用いて、
$priceFooterText変数に、「価格詳細のフッター文字列」を代入します。

「フッタータグを特定するID(識別名)」と「フッタータグ」を、作成する

if ($priceFooterText) {

	$idPrefix = $itemHTMLOption->getIdPrefix ();
	$footerDisplayTime = DateTextMaking::getUnixTimeMillSecond (); // フッターが表示された時間
	$footerTimeText = DateTextMaking::makeUnixTimeIDText ( 
			DateTextMaking::UNIX_TIME_ID_FORMAT, $footerDisplayTime );

	$footerID = GOODS_MEMO_PREFIX . "-" . $idPrefix . "-items-footer-" . $footerTimeText; // 念のため、ページ内にフッターが2個以上ある場合に対応
	$footerDiv = <<< EOD
	<div id="{$footerID}" class="footer">{$priceFooterText}</div>
	EOD;

以下省略

「アフィリエイト商品のHTML」の「フッタータグを特定するID(識別名)」を保持する$footerID変数の例。

goodsmemo-amazon-items-footer-2023-04-15-16-58-58-87

「アフィリエイト商品のHTML」の「フッタータグ」を保持する$footerDiv変数の例。

<div id="goodsmemo-amazon-items-footer-2023-04-15-16-58-58-87" class="footer">
価格の詳細:価格および発送可能時期は表示された日付/時刻の時点のものであり、変更される場合があります。
本商品の購入においては、購入の時点でAmazon.co.jpに表示されている価格および発送可能時期の情報が適用されます。
</div>

$priceFooterText変数が「価格詳細のフッター文字列」を保持する場合、
以下の情報を作成します。

  • 「フッタータグを特定するID(識別名)」
  • 「フッタータグ」
$idPrefix = $itemHTMLOption->getIdPrefix ();

$itemHTMLOption->getIdPrefix()メソッドを用いて、
$idPrefix変数に、識別名を代入します。

この識別名は、例えばアマゾンを意味する場合、amazonという文字列になります。

$footerDisplayTime = DateTextMaking::getUnixTimeMillSecond (); // フッターが表示された時間
$footerTimeText = DateTextMaking::makeUnixTimeIDText ( 
		DateTextMaking::UNIX_TIME_ID_FORMAT, $footerDisplayTime );

DateTextMaking::getUnixTimeMillSecond()関数を用いて、
$footerDisplayTime変数に、Unixタイムスタンプ(マイクロ秒)の値を代入します。

Unixタイムスタンプ(マイクロ秒)の値を保持する$footerDisplayTime変数の例。

1681545538.87

このUnixタイムスタンプの値は、「フッタータグの表示日時」として使用する日時です。

実際には、上記のPHPプログラムコードが実行された時の日時です。
ブラウザ上に、「フッタータグ」が表示された日時ではありません。

DateTextMaking::makeUnixTimeIDText()関数を用いて、
$footerTimeText変数に、「フッタータグの表示日時」の文字列を代入します。

「フッタータグの表示日時」の文字列を保持する$footerTimeText変数の例。

2023-04-15-16-58-58-87

この値は、おおよそ
2023年4月15日 16時58分58秒、87マイクロ秒
を示します。

※マイクロ秒は、1​​秒を1000000等分した単位であり、1マイクロは0.000001秒です。

「フッタータグを特定するID(識別名)」を作成する
$footerID = GOODS_MEMO_PREFIX . "-" . $idPrefix . "-items-footer-" . $footerTimeText; // 念のため、ページ内にフッターが2個以上ある場合に対応

GOODS_MEMO_PREFIX定数の定義。

define ( "GOODS_MEMO_PREFIX", "goodsmemo" );

「フッタータグを特定するID(識別名)」を保持する$footerID変数の例。

goodsmemo-amazon-items-footer-2023-04-15-16-58-58-87
  • GOODS_MEMO_PREFIX定数
  • $idPrefix変数
  • $footerTimeText変数

上記の定数や変数を用いて、文字列を結合して、
$footerID変数に、「フッタータグを特定するID(識別名)」を代入します。

「フッタータグを特定するID(識別名)」を作成する理由は、このIDが「aタグのリンク先」になっているためです。

※関連記事:「価格の詳細」に移動する、価格の「詳細はこちら」aタグ

例えば、同じウェブページ上の2か所で、当プラグインのショートコードを使用した場合、
同じウェブページ上で、2個の「フッタータグ」が存在することになります。

その場合、「aタグのリンク先」は、2個の「フッタータグ」を区別してリンクする必要があります。

「フッタータグを特定するID(識別名)」にマイクロ秒の情報を入れることより、このIDは一意の「フッタータグ」を特定できる、と考えています。

「フッタータグ」を作成する
$footerDiv = <<< EOD
<div id="{$footerID}" class="footer">{$priceFooterText}</div>
EOD;

「フッタータグを特定するID(識別名)」を保持する$footerID変数の例。

goodsmemo-amazon-items-footer-2023-04-15-16-58-58-87

「価格詳細のフッター文字列」を保持する$priceFooterText変数の例。

価格の詳細:価格および発送可能時期は表示された日付/時刻の時点のものであり、変更される場合があります。
本商品の購入においては、購入の時点でAmazon.co.jpに表示されている価格および発送可能時期の情報が適用されます。

「フッタータグ」を保持する$footerDiv変数の例。

<div id="goodsmemo-amazon-items-footer-2023-04-15-16-58-58-87" class="footer">
価格の詳細:価格および発送可能時期は表示された日付/時刻の時点のものであり、変更される場合があります。
本商品の購入においては、購入の時点でAmazon.co.jpに表示されている価格および発送可能時期の情報が適用されます。
</div>

ヒアドキュメント内のHTMLに「フッターに関する項目」を埋め込み、「フッタータグ」のHTMLを作成します。

作成した「フッタータグ」のHTMLを、$footerDiv変数に代入します。

ヒアドキュメント内に記述されている、「フッタータグ」のHTMLにおいて、

  • $footerID変数
  • $priceFooterText変数

これらの変数を展開します。

以上より、「アフィリエイト商品のHTML」のフッター部分を表示するdivタグを、作成します。

価格の「詳細はこちら」リンクを非表示にする場合、$footerID変数に空文字を代入する

$showState = $priceItemHTMLOption->getPriceTimeLinkVisible ();
if ($showState === false) {
	$footerID = ""; // 価格時刻の「詳細はこちら」リンクを非表示にする。
}

価格の「詳細はこちら」リンクの「表示の有効性」が非表示の場合、
$footerID変数に空文字を代入します。

当プラグインのPHPプログラムでは、$footerID変数が空文字の場合、
価格の「詳細はこちら」aタグを非表示にするようになっています。

$footerID変数が空文字の場合、

価格の「詳細はこちら」aタグに対して「style="display: none;"」を適用するように、
当プラグインにおいてプログラムされています。

$priceItemHTMLOption->getPriceTimeLinkVisible()メソッドを用いて、
$showState変数に、価格の「詳細はこちら」リンクの「表示の有効性」を、代入します。

$showState変数がfalseの場合、
価格の「詳細はこちら」リンクを非表示にします。

当プラグインのPHPプログラムにて、
価格の「詳細はこちら」aタグを非表示にするため、$footerID変数に空文字を代入します。

「価格詳細のフッター文字列」が無い場合、「フッターのHTMLに関する情報」を作成しない

$priceItemHTMLOption = $itemHTMLOption->getPriceItemHTMLOption ();
$priceFooterText = $priceItemHTMLOption->getPriceFooterText ();

if ($priceFooterText) {

中略

} else {

	$footerID = "";
	$footerDiv = "";
}

「価格詳細のフッター文字列」が無い場合、
「フッターのHTMLに関する情報」を作成しません。

「フッターのHTMLに関する情報」には、以下のものがあります。

  • 「アフィリエイト商品のHTML」の「フッタータグを特定するID(識別名)」
  • 「アフィリエイト商品のHTML」の「フッタータグ」

「フッターのHTMLに関する情報」を作成しないために、上記の情報を空文字にします。

「価格詳細のフッター文字列」が無い場合、
$priceFooterText変数は空文字を保持します。

この場合、if文のelse文が実行されて、空文字を変数に代入します。

空文字を、$footerID変数に代入します。
空文字を、$footerDiv変数に代入します。

以上より、「フッターのHTMLに関する情報」が無いことを示します。

FooterHTMLUtils.phpのソースコード

<?php

namespace goodsmemo\item\html;

use goodsmemo\date\DateTextMaking;
use goodsmemo\item\html\FooterHTMLInfo;
use goodsmemo\item\html\ItemHTMLOption;
use goodsmemo\item\html\PriceItemHTMLOption;

require_once GOODS_MEMO_DIR . "date/DateTextMaking.php";
require_once GOODS_MEMO_DIR . "item/html/FooterHTMLInfo.php";
require_once GOODS_MEMO_DIR . "item/html/ItemHTMLOption.php";
require_once GOODS_MEMO_DIR . "item/html/PriceItemHTMLOption.php";

class FooterHTMLUtils {

	public static function makeFooterHTMLInfo(ItemHTMLOption $itemHTMLOption): FooterHTMLInfo {

		$footerID;
		$footerDiv; // 今の所、価格詳細専用のフッターとなっている。

		$priceItemHTMLOption = $itemHTMLOption->getPriceItemHTMLOption ();
		$priceFooterText = $priceItemHTMLOption->getPriceFooterText ();

		if ($priceFooterText) {

			$idPrefix = $itemHTMLOption->getIdPrefix ();
			$footerDisplayTime = DateTextMaking::getUnixTimeMillSecond (); // フッターが表示された時間
			$footerTimeText = DateTextMaking::makeUnixTimeIDText ( 
					DateTextMaking::UNIX_TIME_ID_FORMAT, $footerDisplayTime );

			$footerID = GOODS_MEMO_PREFIX . "-" . $idPrefix . "-items-footer-" . $footerTimeText; // 念のため、ページ内にフッターが2個以上ある場合に対応
			$footerDiv = <<< EOD
			<div id="{$footerID}" class="footer">{$priceFooterText}</div>
			EOD;

			$showState = $priceItemHTMLOption->getPriceTimeLinkVisible ();
			if ($showState === false) {
				$footerID = ""; // 価格時刻の「詳細はこちら」リンクを非表示にする。
			}
		} else {

			$footerID = "";
			$footerDiv = "";
		}

		$footerHTMLInfo = new FooterHTMLInfo ();
		$footerHTMLInfo->setFooterID ( $footerID );
		$footerHTMLInfo->setFooterDiv ( $footerDiv );

		return $footerHTMLInfo;
	}
}

【まとめ記事】へのリンク

【まとめ記事】アマゾンの商品を表示する場合、「アフィリエイト商品表示・WordPressプラグイン」のPHPソースコード解説

「アフィリエイト商品表示・WordPressプラグイン」を用いて、アマゾンの商品を表示する処理について、PHPソースコードを解説しています。

【まとめ記事】楽天市場の商品を表示する場合、「アフィリエイト商品表示・WordPressプラグイン」のPHPソースコード解説

「アフィリエイト商品表示・WordPressプラグイン」を用いて、楽天市場の商品を表示する処理について、PHPソースコードを解説しています。