[英]Wordpress - ACF: Disable repeater field in user profile for non admin users
[英]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.