Bir kullanıcı yeni bir avatar yüklediğinde, avatar etkinlik duvarına gönderilir. Bu etkinlik kimliğini userId kullanarak nasıl edinebilirim?BuddyPress etkinlik kimliğini avatardan alın
Sanırım tek yol kendi sorgusunu oluşturmaktır, değil mi?
Bir kullanıcı yeni bir avatar yüklediğinde, avatar etkinlik duvarına gönderilir. Bu etkinlik kimliğini userId kullanarak nasıl edinebilirim?BuddyPress etkinlik kimliğini avatardan alın
Sanırım tek yol kendi sorgusunu oluşturmaktır, değil mi?
Bu aktiviteyi almak için bir sorgu yazabilirsiniz. Orada avatar yüklendikten sonra içine denilen alacak kanca bir filtre de (daha sonra anlatılacak):
stdClass Object
(
[id] => 2 <-- this is the activity ID
[user_id] => 1
[component] => profile
[type] => new_avatar
[action] => admin changed their profile picture
[content] =>
[primary_link] => http://example.com/wordpress/members/admin/
[item_id] => 0
[secondary_item_id] => 0
[date_recorded] => 2016-03-29 04:41:53
[hide_sitewide] => 0
[mptt_left] => 0
[mptt_right] => 0
[is_spam] => 0
)
sizi hangi denir bir eylem yok:
<?php
global $wpdb;
$query = "SELECT * FROM {$wpdb->prefix}bp_activity WHERE " .
"`type` = 'new_avatar' AND `user_id` = %d " .
"ORDER BY `date_recorded` DESC LIMIT 1";
$result =
$wpdb->get_row(
$wpdb->prepare($query, $user_id)
);
if ($result) {
// found an activity item for avatar upload
var_dump($result);
} else {
// user has not uploaded an avatar
}
Sonucu benziyor Bu etkinlik gerçekleştiğinde buna katılabilirsiniz. Bu xprofile_avatar_uploaded
ve iki parametre, $item_id
(kullanıcı kimliği) ve $type
(örneğin, kırpma veya kamera) iletir. Bu filtre, bir avatar yüklendikten sonra yürütülür. senin fonksiyonlarda
Somewhere ekleyin:
add_action('xprofile_avatar_uploaded', 'callback');
function callback($user_id, $type)
{
// $user_id uploaded new avatar
}
ben de çağırabilirsiniz bulundu:
$img = bp_get_activity_avatar(['user_id' => $user_id]);
avatar görüntülemek için HTML alır. Bunlar wp-content/uploads/avatars
'da depolanır.
Ayrıca çağırabilirsiniz:
$url = bp_core_fetch_avatar(['item_id' => $user_id, 'html' => false]);
avatar sadece tam URL'yi alır.
Hızlı cevap için teşekkürler. Filtre her seferinde çağrılır (avatar yüklendikten sonra sadece bir kez değil). Fikrim, avatar başarıyla değiştirildikten sonra user_meta alanlarındaki etkinlik kimliğini saklamayı biliyor. Lütfen bana doğru kancayı verebilir misin? – Peter
Merhaba, cevabı düzenledim, 'xprofile_avatar_uploaded' eyleminin daha doğru olduğuna inanıyorum. Anlayabildiğim kadarıyla sadece başarılı bir avatar yüklendikten sonra çağrılır. – drew010
Doğru çözdüler mi? – GeorgeWL