[紀錄] AffiliateWP客製化調整實戰

AffiliateWP是可以透過woocommerce搭配的一個非常實用的外掛,透過這個外掛業主可以輕鬆追蹤合作的部落客所帶來的流量與轉換,而部落客也可以透過後台直接透過後台直接看到報酬及分紅。

情境:

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就會出現聯盟夥伴頁面連結

但是客戶是希望只有在”聯盟行銷夥伴”的帳號才出現

所以要讓除了”聯盟行銷夥伴”的使用者角色都看不到並且無法進入該頁面


3.將使用者角色修改為”聯盟行銷夥伴”

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' );

Github程式碼參考

https://github.com/MitsuiWei/affiliatewp-customization

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *