web-dev-qa-db-ja.com

ユーザーメタに基づくbuddypressで友達リクエストを自動承諾する方法

私は相変わらず私の相棒の相棒を探しています、これまでのところ非常に良いです、しかし、私は「専門家」としてフラグを立てられた特定のユーザーが自動的に人々からの友人要求を受け入れることを望みます。

これに関連する関数がいくつか見つかりましたが、定数の設定や$ bpグローバルの一部の上書きなど、これをより簡単にするためのものが足りないと思います…

私がこれまでに持っているものは以下の通りです:

function bp_auto_accept_friend_request( $friendship_id, $friendship_initiator_id, $friendship_friend_id ) {
    if ( is_user_expert( $friendship_friend_id ) ) {
        // force add
        friends_accept_friendship( $friendship_id );
        friends_add_friend( $friendship_initiator_id, $friendship_friend_id, true );
    }
}
add_action('friends_friendship_requested', 'bp_auto_accept_friend_request', 200, 3);

まるでメインの設定が要求プロセスを迂回するように設定されているかのように、誰が私がこれを素敵でシームレスにするために探しているべきかを教えてもらえますか?

1
sanchothefat

更新

これを試して

function bp_auto_accept_friend_request( $friendship_id, $friendship_initiator_id, $friendship_friend_id ) {
        $friendship_status = BP_Friends_Friendship::check_is_friend( $friendship_initiator_id, $friendship_friend_id );
        if ( 'not_friends' == $friendship_status ) {
            if ( is_user_expert( $friendship_friend_id ) ) {
            // force add
            friends_add_friend( $friendship_initiator_id, $friendship_friend_id, true );
            friends_accept_friendship( $friendship_id );
        }
        }
    }
    add_action('friends_friendship_requested', 'bp_auto_accept_friend_request', 200, 3);

このようにして、フレンドでなければ、friends_add_friend関数を$ force = trueで呼び出すだけです。

1
Bainternet