情境:
AffiliateWP是可以透過woocommerce搭配的一個非常實用的外掛,透過這個外掛業主可以輕鬆追蹤合作的部落客所帶來的流量與轉換,而部落客也可以透過後台直接透過後台直接看到報酬及分紅。
而以下是我遇到的客戶需要針對這個外掛所進行的客製化調整。
1.不要透過AffiliateWP頁面讓別人申請聯盟行銷會員
2.在woocommerce的my-account新增聯盟行銷會員的連結,並且要判斷為聯盟行銷成員才產生按鈕連結
3.在沒有登入的狀況下進入AffiliateWP頁面自動跳轉至my-account
調整:
不要透過AffiliateWP頁面讓別人申請聯盟行銷會員
這點可以透過外掛內直接設定
聯盟夥伴 -> 設定 -> 其他項目 -> 允許聯盟夥伴註冊(取消打勾)
在woocommerce的my-account新增聯盟行銷會員的連結,並且要判斷為聯盟行銷成員才產生按鈕連結
1.新增一個聯盟夥伴的user_role
add_role() WordPress developer
add_role( 'affiliatewp_member', __( '聯盟行銷夥伴' ), array( 'read'=> true ) );
2.打開AffiliateWP預設出現在my-account設定
打開這個設定,在my-account就會出現聯盟夥伴頁面連結
但是客戶是希望只有在”聯盟行銷夥伴”的帳號才出現
所以要讓除了”聯盟行銷夥伴”的使用者角色都看不到並且無法進入該頁面
4.判斷是否為”聯盟行銷夥伴”來決定在my-account頁面要不要產生按鈕連結
function check_user_affiliatewp_member() { global $current_user; if( $current_user->roles[0] !== 'affiliatewp_member' ) { echo '<style>.woocommerce-MyAccount-navigation-link--affiliate-area, .affiliate-area-link{display:none;}</style>'; } if($current_user->roles[0] !== 'affiliatewp_member' && $_SERVER['REQUEST_URI'] == '/affiliatewp/'){ header("Location:".'https://'.$_SERVER['HTTP_HOST'].'/my-account/'); exit; } } add_action( 'init', 'check_user_affiliatewp_member' );
在沒有登入的狀況下進入AffiliateWP頁面自動跳轉至my-account
先將聯盟夥伴頁面網址修改為affiliatewp,這樣才能對應程式碼的判斷。
function check_logined() { if ($_SERVER['REQUEST_URI'] == '/affiliatewp/' && !is_user_logged_in()) { header("Location:".'https://'.$_SERVER['HTTP_HOST'].'/my-account/'); exit; } } add_action( 'init', 'check_logined' );