簡體   English   中英

WordPress:更新用戶配置文件以在 ACF 用戶字段中包含作者 object

[英]WordPress: Update User Profile to include author object in ACF user field

這是一個奇怪的情況。 我正在嘗試使用 ACF 在會員網站上制作偽喜歡/關注功能。

我已經得到它來顯示來自后端用戶 object 字段的喜歡/關注的用戶。 我現在需要構建一個按鈕,我可以將其添加到所有用戶的個人資料頁面,允許用戶喜歡/關注該用戶,這將添加到他們自己的前端個人資料頁面中的用戶字段,並在一個 go 中全部更新.

關於如何做到這一點的任何想法? 我在最初的搜索中沒有找到任何東西。

我試過構建一個 ACF 表單,但它沒有更新選項。 我也試過這段代碼:

$current_user = wp_get_current_user();
add_action('acf/save_post', 'update_name');
function update_name($current_user) {

  if (get_post_type($current_user) != 'user_follows') {
    return;
  }
    
$field_key = "field_63d0017ab088f";
$value = get_the_author_meta('user_nicename');

update_field( $field_key, $value, $current_user);
}

然后使用輸入提交按鈕觸發它:

<input type="submit" class="acfef-submit-button acf-button button button-primary" data-state="publish" value="Follow">

可悲的是,這也沒有用。

任何人有任何想法如何讓這個工作?

任何幫助都會很棒!

這是一個非常簡單的解決方案,您可以根據自己的需要進行定制,或者可能只是幫助您按照最初的嘗試方式進行操作。 我不確定您是如何從原來的開始進行處理的,並猜測可以使用update_field以簡單的形式解決它。 如果我自己做的話,我肯定會用 REST API 來構建它。 我剛剛轉儲了下面的代碼,讓我知道它是否有意義和/或對你有用,如果你需要我可以根據需要添加評論,只需更新$user_likes數組以根據提交的值更新字段按鈕。

我在我的本地安裝上構建了它,並假設您正在使用 author.php 模板文件的一些變體。

<?php
    $profile_user = get_queried_object();   
    $current_user = wp_get_current_user();
    $current_user_slug = 'user_' . $current_user->ID;
    $field_key = "field_63d0017ab088f";
    $user_likes = [];

    if(get_field('user_follows', $current_user_slug)){
        $user_likes = get_field('user_follows', $current_user_slug);
    }
        
    if(isset($_POST['follow'])){
        if($_POST['follow'] === 'Unfollow'){
            $key = array_search($profile_user, $user_likes);
            unset($user_likes[$key]);
            update_field($field_key, $user_likes, $current_user_slug);  
        }elseif($_POST['follow'] === 'Follow'){
            $user_likes[] = $profile_user;
            update_field($field_key, $user_likes, $current_user_slug);
        }
    }

    $but_val = 'Follow';
    if (in_array($profile_user, $user_likes)) {
        $but_val = 'Unfollow';
    }
        
?>

<form method="post">
    <input type="submit" name="follow" value="<?= $but_val; ?>">
</form>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM