wp-membersでメンバーシップが保存されない(動作しない)問題
メンバーシップを新規追加する際に日本語で入れてしまうとスラッグがエンコードされて変換されてしまい、投稿または固定ページでの制限付き、およびユーザー編集ページでメンバーシップを変更しても保存されない問題を解決したのでそのTIPS。
【不具合の原因】
wp-membersのメンバーシップ登録時に日本語名称がエンコードされたスラッグとなり、それが原因でエラーが発生する。
↑のようにエンコードされたスラッグではメンバーシップのアクセス権を付与した際に正常に保存されない。
解決方法
- メンバーシップの新規登録:
- 英語名称で登録: メンバーシップの名称をまず英語で登録します。
- スラッグの確認: 登録されたスラッグがエンコードされていないことを確認します。
- 名称の修正:
- 日本語名称に変更: 英語で登録した後、名称を日本語に修正します。
- 動作確認: 修正後も正常に動作することを確認します。
メンバーシップ名を半角英数字で入力
スラッグがエンコードされていないことが確認できたらメンバーシップ名を日本語に変更
おわりに
プラグインの全体を通して動作は確認できていましたが、各記事や各ユーザーに対して、メンバーシップのアクセス権を保存する動作だけが保存されない不具合を起こしており、WP_DEBUG_LOGを使ってエラーログを解析してwp-membersのコアファイルをデバッグするなど1週間ほど取り組みましたが解決せずで公式フォーラムを日本語化して読みあさっていたところスラッグに関するヒントを見つけて解決に至りました。