Afisează ID-ul utilizatorilor într-un tabel separat
{
$ad_code = str_replace("xxxx",$_SESSION['user_id'],$resultset->description);
$ad_code = str_replace("XXXX",$_SESSION['user_id'],$ad_code);
echo '<tr>';
echo '<td class="col2"><strong>'.$resultset->name.'</strong></td>';
echo '<td><textarea cols=65 rows=5>';
echo $ad_code;
echo "</textarea></td>";
echo '</tr>';
}
Folosesc un plugin numit WordPress Affiliate Platform, care a creat (cred) utilizatori într-un tabel separat față de utilizatorii obișnuiți WP, pentru a nu amesteca utilizatorii afiliați cu cei WP.
Aș dori să obțin ID-ul utilizatorului afiliat autentificat, pentru a putea afișa URL-ul de recomandare al paginii curente a afiliatului:
- Exemplu de URL de recomandare pentru întreg site-ul:
http://domain.com/?ap_id=AMEEKER
- Exemplu de URL de recomandare specific unei pagini:
http://domain.com/myproduct?ap_id=AMEEKER
Plugin-ul în sine nu oferă această opțiune, ci doar instrucțiuni pentru ca afiliații să adauge ?ap_id=AMEEKER
după URL-ul paginii curente pentru a obține link-ul lor de afiliere. E în regulă, dar e puțin laborios și poate duce la erori care nu sunt chiar vina afiliaților.
Sunt sigur că există o metodă de a afișa simplu URL-ul paginii curente, urmat de ?ap_id= și ID-ul utilizatorului afiliat, dar am dificultăți în a înțelege cum să obțin ID-ul afiliatului.
Plugin-ul însuși face acest lucru prin transformarea lui xxxx în ID-ul utilizatorului cumva.
domain.com/myproduct?ap_id=XXXX
Am inserat mai sus niște cod din panoul de control al afiliatului, o zonă unde plugin-ul EXTRAGE ID-ul afiliatului și îl afișează dinamic pentru utilizatorul autentificat. Privind la acel template în fișierele plugin-ului, am găsit ceea ce CRED că este codul care transformă dinamic XXXX în ID-ul real al afiliatului, dar nu știu ce să fac cu asta sau dacă acest cod singur mă poate ajuta să obțin ceea ce doresc. Adică, pot să mă uit la el și să ÎNȚELEG parțial ce face, dar nu suficient cât să știu dacă sau ce pot face acum cu el!
(nu sunt programator, mai degrabă un amator).
Am întrebat autorul plugin-ului, care pare să ofere suport foarte bun, dar această funcționalitate a fost solicitată de mai multe ori pe site-ul lor și răspunsul este același. Nu am resentimente, dar aș vrea să văd dacă se poate face.
Orice ajutor ar fi apreciat.

După ce am analizat codul pentru plugin, nu pare să existe o metodă simplă de a face acest lucru.
Afiliații sunt stocați într-un tabel care nu are nicio relație directă cu tabelul de utilizatori WordPress - aceasta înseamnă că puteți avea utilizatori care nu sunt afiliați și puteți avea afiliați care nu sunt utilizatori. De aceea există o opțiune mare "Importă utilizatori WP" ... nu este automată.
Când un afiliat se autentifică, există un cod care începe automat o sesiune PHP, stochează ID-ul afiliatului ca variabilă de sesiune și îl setează ca cookie pentru a putea fi preluat mai târziu:
global $wpdb;
$affiliates_table_name = WP_AFF_AFFILIATES_TABLE;
$result = $wpdb->get_row("SELECT * FROM $affiliates_table_name where refid='$userid'", OBJECT);
if($wp_hasher->CheckPassword($password, $result->pass))
{
// acest cod setează sesiunea și autentifică utilizatorul
if(!isset($_SESSION)){@session_start();}
// acest cod setează variabile în sesiune
$_SESSION['user_id']= $userid;
setcookie("user_id", $userid, time()+60*60*6, "/"); //setează cookie pentru 6 ore
// ... și așa mai departe
}
Plugin-ul, în acest moment, nu utilizează deloc sistemul de gestionare a utilizatorilor WordPress.
Rezumat
ID-urile de afiliat pe care le vedeți nu sunt același lucru cu numele de utilizator din sistem și nu există nicio modalitate de a executa o interogare pentru a prelua un nume de utilizator/ID din tabelul de utilizatori WordPress pe baza unui ID de afiliat (sau invers), deoarece nu există date care să lege cele două în sistem.
Obținerea ID-ului de afiliat
Dacă tot ce doriți să faceți este să obțineți ID-ul afiliatului dacă utilizatorul este autentificat, atunci tot ce trebuie să faceți este să verificați colecția de cookie-uri sau sesiunea curentă:
function get_current_affiliate_id() {
$affiliate_id = false;
if ( isset( $_SESSION ) && isset( $_SESSION['user_id'] ) )
$affiliate_id = $_SESSION['user_id'];
if ( ! $affiliate_id && isset( $_COOKIE['user_id'] ) )
$affiliate_id = $_COOKIE['user_id'];
return $affiliate_id;
}
Dacă utilizatorul este autentificat, atunci atât variabila de sesiune, cât și cookie-ul ar trebui să fie setate. Această funcție va returna apoi ID-ul utilizatorului (verificarea cookie-ului este doar o rezervă în cazul în care se întâmplă ceva cu sesiunile de pe server ... de exemplu, o repornire a serverului în timp ce cineva utilizează site-ul). Dacă utilizatorul nu este autentificat, funcția va returna false
.
Odată ce aveți ID-ul, puteți utiliza alte funcții incluse în plugin pentru a obține orice informații aveți nevoie.

Știam că sunt două grupuri diferite de utilizatori. Vreau să afișez ID-ul afiliatului dacă acesta este autentificat, fără a ține cont de utilizatorii WP. Afișez conținut în altă parte DACA afiliatul este autentificat folosind acest cod:
if(aff_main_check_security())
{
add_action( 'genesis_before_content_sidebar_wrap', 'include_aff_info' );
function include_aff_info() { require(CHILD_DIR.'/aff_info.php');
};
}
else
{
echo "";
}
Dacă afiliatul se autentifică, rămâne autentificat pe întreg site-ul.
