sql >> データベース >  >> RDS >> Mysql

同じwp_usersテーブルとwp_usermetaテーブルを共有する2つのWordpressインストール間ですべてのユーザーロールを同期します。

    ユーザーの役割の同期に問題がありました(ユーザーごとに複数のユーザーの役割)。真夜中の石油を2泊以上燃やした後、ばかげた魔法の解決策を見つけました:)

    「add_action('set_user_role'、'ksu_save_role'、10、2);」で「set_user_role」を「add_user_role」に変更しただけです。

    小さな魔法の微調整後の終了コード

    function ksu_save_role( $user_id, $role ) {
    
        // Site 1
        // Change value if needed
        $prefix_1 = 'first_';
    
        // Site 2 prefix
        // Change value if needed
        $prefix_2 = 'second_';
    
        $caps = get_user_meta( $user_id, $prefix_1 . 'capabilities', true );
        $level = get_user_meta( $user_id, $prefix_1 . 'user_level', true );
    
        if ( $caps ){
            update_user_meta( $user_id, $prefix_2 . 'capabilities', $caps );
        }
    
        if ( $level ){
            update_user_meta( $user_id, $prefix_2 . 'user_level', $level );
        }
    }
    
    add_action( 'add_user_role', 'ksu_save_role', 10, 2 ); // THE MAGIC MODIFICATION
    

    コードクレジット: https://kinsta.com/blog/share-logins-wordpress/

    これをfunctions.phpに追加すれば、準備は完了です。

    「WoocommerceSubscriptions」や「YITHAutomaticRoleChangerforWooCommercePremium」などのロールチェンジャープラグインと互換性があります

    必要な数の役割を設定および変更できます。




    1. チャートの種類の紹介

    2. SUM、LEFT JOIN、およびGROUPBYを含む複製

    3. Mysqlによる削除順序

    4. mysqljdbc接続文字列の特殊文字をエスケープする方法