Cookie Tasting

説明

このプラグインはユーザーがログインしたときにCOOKIEを設定します。
COOKIEをデータストアに利用することができます。
つまり、UIリソースとして使うことができるのです。

表示

このプラグインはhtml要素にクラスを追加します。

  • ct-logged-in 現在のユーザーはログイン済みです。
  • ct-not-logged-in 現在のユーザーはログインしていません。

CSSで表示のコントロールができます。

.some-element{
  display: none;
}
.ct-logged-in .some-element{
  display: block;
}

JavaScriptでの利用

グローバルオブジェクトCookieTastingが便利です。

  • CookieTasting.userName() ユーザー名を返します。ログインしていない場合は「ゲスト」を返します。
  • CookieTasting.lastUpdated() 最後にログイン状態をチェックしたときのタイムスタンプを返します。0の場合、ユーザーがログインしていないことを意味します。

さらに、このプラグインはログイン状態を定期的にチェックします。
jQueryから操作することできます。

jQuery( document ).on( 'cookie.tasting', function( event, response ) {
  if ( response.login ) {
    // User is logged in.
    // If you use React...
    setAttributes({ name: CookieTasting.userName() })
  } else {
    // User is not logged in.
  }
} );

Reactのようなツールを使っている場合は、setState()でステータスを更新してください。

アクションの前にチェックする

キャッシュされたWordPressを管理し、それを独自テーマでカスタマイズしている場合、動的なUIコンポーネントをJavaScriptで実装するのはよいアイデアです。

重要なアクションの直前にユーザーの認証情報を確認することができます。

// Click action for button.
$('.read-more').click( function( e ) {
  e.preventDefault();
  // Check cookie before do something.
  CookieTasting.testBefore().then( function( response ) {
    // Now user has fresh information.
    // Load premium contents.
    loadPremiumContents();
  }).catch( function( response ) {
    // This user is not logged in.
    // Redirect them to login page.
    window.locaion.href = '/wp-login.php';
  } );
} );

あなたのスクリプトにcookie-tasting-heartbeatへの依存関係を追加しておくのを忘れないようにしてください。

UUIDを利用する

このプラグインはデフォルトでそれぞれのユーザーにUUIDを設定します。これは……

  • ログインしたそれぞれのユーザーにユニークなもので、user_metaに保存されます。
  • ログインしていないユーザーにも保持されます。

これでGoogle Analyticの User ID ビューに使うことをができます。

const uuid = CookieTasting.get( 'uuid' );
// For Google Analytics.
ga( 'set', "userId", uid );

インストール

  • Zipファイルをダウンロードし、解凍してください。
  • wp-content/pluginsディレクトリにアップロードしてください。
  • WorPressの管理画面へ移動し、プラグインを有効化してください。

おすすめ: WordPressの管理画面で検索してインストールしてください。

FAQ

貢献方法

このプラグインはGithubにホストされています。
イシューの登録やプルリクエストをお待ちしています。

貢献者と開発者

Cookie Tasting はオープンソースソフトウェアです。以下の人々がこのプラグインに貢献しています。

貢献者

“Cookie Tasting” は1ロケールに翻訳されています。 翻訳者のみなさん、翻訳へのご協力ありがとうございます。

“Cookie Tasting” をあなたの言語に翻訳しましょう。

開発に興味がありますか ?

コードを閲覧するか、SVN リポジトリをチェックするか、開発ログRSS で購読してみてください。

変更履歴

1.0.10

  • Bugfix: Add polyfil for Object.assign in favor of lte IE11.
    (Props @Kamata Ryo).

1.0.9

  • Bugfix nonce refreshing for cached page.

1.0.8

  • Add filter for Cookie check API. Now you can change error message.

1.0.7

  • Fix UUID logic.
  • Add automatic refresh for rewrite rules.

1.0.6

  • SSLの時のバグを修正。

1.0.5

  • 致命的なエラーを修正。vendorが消えていた。

1.0.4

  • @wordpress/wp-api-featchwp-apiwpApiSettingsのためにnonceを更新するようにしました。
  • REST APIはCOOKIEが適切に設定されている必要があったので、エンドポイントを変更。エンドポイント wp-json/cookie/v1/nonce は仮想的なもので、実際にはREST APIではありません。このため、適切にnonceを更新することができます。通常、この更新は自動的に行われますが、 “rest_cookie_invalid_nonce”レスポンスが表示された場合は、”設定 > パーマリンク” から更新してみてください。”更新”をクリックするだけです。
  • UUIDが現在のユーザーに設定されます。トラッキングに役立ちます。

1.0.3

  • COOKIE確認APIにフィルターを追加。

1.0.2

  • バグ修正: home_urlがSSLでない場合、COOKIEの$secureフラグが false になるようになりました。ただし、サイトはSSLで保護することを心よりお勧めします。

1.0.0

  • 最初のリリース。