概要説明
アフィリエイトの成果用のコンバージョンタグをプラグイン無しで設定するカスタマイズ。特定のパラメーターが設定されている場合のみcookieを使用してWordPress Contact Form 7 にてアフィリエイト対応が可能です
~ 目次 ~
アフィリエイトリンクからの遷移を判定させてsessionに情報を保持させる
functions.php
/*----------------------------------------------------
GETパラメーターにてアフィリエイトリンクからの遷移を判定
----------------------------------------------------*/
if ( !function_exists( 'set_affiliate_header' ) ){
function set_affiliate_header() {
if ( isset($_GET['affiliate']) ) {
$limitTime = time()+60*60*24; // 1日有効
$rand_txt = makeRandStr(10);
setcookie('affiliate' , $rand_txt , $limitTime);
header('Location: ' . get_the_permalink());
exit;
}
}
// ランダムなユニークコード作成
function make_rand_str($length) {
$str = array_merge(range('a', 'z'), range('0', '9'));
$r_str = null;
for ($i = 0; $i < $length; $i++) {
$r_str .= $str[rand(0, count($str) - 1)];
}
return $r_str;
}
add_action( 'get_header', 'set_affiliate_header');
}
メール本文に発行したユニークコードを表示させる
functions.php
/*----------------------------------------------------
Contact Form 7 にてユニークコードをメールに記載できるようにする
----------------------------------------------------*/
if ( !function_exists( 'echo_affiliate_html' ) ){
function add_custom_form_tags() {
wpcf7_add_form_tag( 'affiliate_code', 'get_page_code_form_tag_handler' );
}
function get_page_code_form_tag_handler( $tag ) {
$rand_txt = $_COOKIE['affiliate'];
return '<input type="hidden" name="affiliate_code" value="' . $rand_txt . '" />';
}
add_action( 'wpcf7_init', 'add_custom_form_tags' );
}
[affiliate_code]
Contact Form 7 お問い合わせフォーム設定画面に上記コードを隠し項目として設定することで発行したユニークコードをメール本文に表示させることができるようになります
メール本文の設定画面
[affiliate_code]
上記コードを同様にメール本文の設定画面に記載することでメール本文内にユニークコードをが表示されます
Contact Form 7 にて正常に送信でき場合にサンクスページを表示させるように設定
成果用の通信コードを表示させるショートコード
functions.php
/*----------------------------------------------------
アフィリエイト成果通信用コード表示ショートコード
----------------------------------------------------*/
if ( !function_exists( 'echo_affiliate_html' ) ){
function echo_affiliate_html() {
if ( isset($_COOKIE['affiliate']) ) {
$rand_txt = $_COOKIE['affiliate'];
setcookie('affiliate', '', time()-1); // cookie 削除
// アフィリエイト用の専用コード内にユニーク文字列を入れて表示
$res = '<script src="https://xxxx.com?key='.$rand_txt.'"></script>';
return $res;
} else {
return '';
}
}
add_shortcode( 'echo_affiliate_html', 'echo_affiliate_html' );
}
サンクスページに成果用の通信コードをショートコードで表示させる
[echo_affiliate_html]
にて記事編集ページからショートコードを設定するかPHPからショートコードを使用する場合は下記のように記述して使用します
<?php echo do_shortcode('[echo_affiliate_html]'); ?>



