概要説明
アフィリエイトの成果用のコンバージョンタグをプラグイン無しで設定するカスタマイズ。特定のパラメーターが設定されている場合のみ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 お問い合わせフォーム設定画面に上記コードを隠し項目として設定することで発行したユニークコードをメール本文に表示させることができるようになります
![WordPress Contact Form 7 を使ったアフィリエイト成果報酬コードの設定方法(コンバージョンタグ設置)](https://functions.fs-create.net/wp-content/uploads/2024/06/aff.png)
メール本文の設定画面
[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]'); ?>