這個外掛並未在最新的 3 個 WordPress 主要版本上進行測試。開發者可能不再對這個外掛進行維護或提供技術支援,並可能會與更新版本的 WordPress 產生使用上的相容性問題。

Cookie Tasting

描述

This plugin sets user cookie when user is logged in.
You can use cookie as data store,
so you can use it as UI resource.

Visibility

This plugin adds class to html element.

  • ct-logged-in The current user is logged in.
  • ct-not-logged-in The current user is anonymous.

You can control elements visibility with CSS.

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

From JavaScript

You can use Global Object CookieTasting for utility.

  • CookieTasting.userName() Returns user name. If not logged in, returns ‘Guest’.
  • CookieTasting.lastUpdated() Returns timestamp of last log in check. If this equals 0, it means that user is anonymous.

Besides that, this plugin checks periodically log-in status.
You can handle it with 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.
  }
} );

If you use react or something, updated the status with setState().

Check Before Action

If you manage cached WordPress and customizing your own theme,
It’s a good idea to implement dynamic UI components with JavaScript.

You can check user’s credential just before important actions.

// 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';
  } );
} );

Plese remember adding dependency for cookie-tasting-heartbeat to your script.

Handle UUID

By default, this plugin set UUID for each user. This will be…

  • Unique for each logged in user and will be saved as user_meta.
  • Also kept for anonymous user.

So you can use it for Google Analytic’s User ID View.

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

安裝

  • Download zip file and unpack it.
  • Upload the directory to wp-content/plugins.
  • Go to WordPress admin screen and activate this plugin.

Recommendation: Search on WordPress admin screen and install it.

常見問題

How to Contribute

This plugin is hosted on Github.
Please feel free to make issue or send pull requests.

貢獻者及開發者

“Cookie Tasting” 是一個開源的軟體。以下的人對這個外掛作出了貢獻。

貢獻者

Cookie Tasting 外掛目前已有 1 個本地化語言版本。 感謝所有譯者為這個外掛做出的貢獻。

將 Cookie Tasting 外掛本地化為台灣繁體中文版。

對開發相關資訊感興趣?

任何人均可瀏覽程式碼、查看 SVN 存放庫,或透過 RSS 訂閱開發記錄

修改日誌

1.0.11

  • Display console.log only if SCRIPT_DEBUG is true.

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

  • Fix SSL bug.

1.0.5

  • Fix fatal error. vendor directory was missing.

1.0.4

  • Update nonce for @wordpress/wp-api-featch and wpApiSettings of wp-api.
  • Change REST API endpoit because it requires COOKIES properly set. The endpoint wp-json/cookie/v1/nonce is pseudo and it’s not REST API actually, so you can refresh nonce with this endpoint. Normally, this refresh will be executed automatically, but if you get “rest_cookie_invalid_nonce”, try updating permalink from “Setting > Permalink”. Just click “Save” and that’s it.
  • UUID will be set for current user. It’s userful for tracking.

1.0.3

  • Add filter to cookie detection API.

1.0.2

  • Bugfix: if home url is not SSL, cookie $secure flag is now false.
    But we sincerely recommend protecting your site under SSL.

1.0.0

  • Initial release.