Úvodní stránka › Fórum podpory WordPressu › Problémy s WordPressem › Nefunkční get_currentuserinfo
Štítky: get_currentuserinfo()
Zvolené téma obsahuje celkem 5 odpovědí. Do diskuze (2 účastníci) se naposledy zapojil uživatel weskomfort a poslední změna je stará 9 let, 10 měsíců.
-
AutorPříspěvky
-
31. května 2014 (22:51) #18938
Byl na mě dán požadavek na úpravu stránek běžících na WP Multisite. Je na nich vytvořen spešl plugin (né mnou), ale zjistil jsem, že v pluginu funkce get_currentuserinfo nevrací žádné hodnoty. Nesetkal se s tím někdo pls??
Jedna z vícero funkcí která vrací nulu.
function expired_date() { global $current_user; get_currentuserinfo(); $date = get_field('expired_date', 'user_' . $current_user->ID); if ($date==0) $date = '20000101'; return DateTime::createFromFormat('Ymd', $date); }
Předem dík za každou radu.
1. června 2014 (9:41) #18941Takže nefunguje funkce get_currentuserinfo() nebo spíše celá funkce expired_date()? Výsledkem je nula (tedy 0) nebo prázdná hodnota (tedy NULL)? Používáte tam funkci get_field(), která je patrně z pluginu Advanced Custom Fields, nemůže ta způsobovat nějaký problém?
1. června 2014 (11:01) #18945get_currentuserinfo() protože pokud zadám user_ ručně tak se datum expirace zobrazuje normálně. Advanced Custom Fields tak nějak využívá celý web (z toho opravdu odvázaný nejsem), takže nepoužít ho by znamenalo předělat celý web.
Hodnota je NULL (omluva za špatné vyjádření)Funkce get_currentuserinfo() nevrací hodnoty ani v dalších funkcích pluginu
Např:function cespo_headline($section) { global $current_user, $blog_id; if (!is_user_logged_in() and $blog_id==1) return false; get_currentuserinfo(); $html = '<ul>'; $html .= '<li class="item-back">'; if ($section=='web') $html .= '<a href="/aplikace/">'.__('přejít na aplikaci Dostaňte dotace','cespo_plugin').'</a>'; elseif ($section=='app') $html .= '<a href="/">'.__('Zpět na stránku dostantedotace.cz','cespo_plugin').'</a>'; $html .= '</li>'; if (is_user_logged_in()) { $html .= '<li class="item-lock">'; $expired_date = cespo_expired_date(); if ($expired_date->format('Ymd')>date('Ymd')) $html .= __('služba je aktivní do:','cespo_plugin'); else $html .= __('služba vypršela:','cespo_app'); $html .= ' <strong>'.$expired_date->format('d.m.Y').'</strong>'; $html .= ' <a href="/aplikace/prodlouzeni/">'.__('prodloužit','cespo_plugin').'</a>'; $html .= '</li>'; $html .= '<li class="item-custom"><a href="/aplikace/nastaveni/">'.__('nastavení účtu','cespo_plugin').'</a></li>'; $html .= '<li class="item-user">'; $html .= __('přihlášen:','cespo_plugin').' <strong>'; $html .= $current_user->user_firstname.' '; $html .= $current_user->user_lastname; $html .= '</strong> <a href="'.wp_logout_url( home_url() ).'">'.__('odhlásit','cespo_app').'</a>'; $html .= '</li>'; } $html .= '</ul>'; return $html; }
zobrazí se pouze viz. příloha
Attachments:
1. června 2014 (13:46) #18951Těžko říci, ale bude to asi složitější problém. Nemůže to ovlivňovat nějaký jiný plugin? Problém se objevil až v současné době (třeba po nějaké aktualizaci) nebo to je něco dlouhodobého? Nejsou funkce volány ještě dříve než je definován uživatelský objekt? Můžete poslat přístupy, zkusím se na to případně podívat…
5. června 2014 (11:05) #189905. června 2014 (20:35) #19003Jo jo. Omluva, že jsem nenapsal, ale stránky mi daly docela zabrat.
Nejdříve jsem problém vyřešil když jsem ve funkci volat pluggable.phprequire_once(ABSPATH . 'wp-includes/pluggable.php');
Nicméně pak jsem se dal cestou aktualizace WP a pluginů a problém se vyřešil sám. Nyní není třeba ani zmíněného kódu.
-
AutorPříspěvky
Pokud chcete odpovědět na toto téma, musíte se nejdříve přihlásit.