Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Helper functions.
/**
* Generate unique cookie name for the current site and return it
*
* @since 1.0.0
*/
public function get_unique_cookie_name() {
$site_url = get_bloginfo( 'url' );
$site_name = get_bloginfo( 'name' );
$suffix = '-toptal-saved-items';
$cookie_name = $site_url . $site_name . $suffix;
// Now let's strip everything
$cookie_name = str_replace( array( '[\', \']' ), '', $cookie_name );
$cookie_name = preg_replace( '/\[.*\]/U', '', $cookie_name );
$cookie_name = preg_replace( '/&(amp;)?#?[a-z0-9]+;/i', '-', $cookie_name );
$cookie_name = htmlentities( $cookie_name, ENT_COMPAT, 'utf-8' );
$cookie_name = preg_replace( '/&([a-z])(acute|uml|circ|grave|ring|cedil|slash|tilde|caron|lig|quot|rsquo);/i', '\\1', $cookie_name );
$cookie_name = preg_replace( array( '/[^a-z0-9]/i', '/[-]+/' ) , '-', $cookie_name );
$cookie_name = strtolower( trim( $cookie_name, '-' ) );
return $cookie_name;
}
/**
* Set cookie
*
* @since 1.0.4
*/
public function toptal_set_cookie( $name, $value = array(), $time = null ) {
$time = $time != null ? $time : time() + apply_filters( 'toptal_cookie_expiration', 60 * 60 * 24 * 30 );
$value = base64_encode( json_encode( stripslashes_deep( $value ) ) );
$expiration = apply_filters( 'toptal_cookie_expiration_time', $time );
$_COOKIE[ $name ] = $value;
setcookie( $name, $value, $expiration, COOKIEPATH ? COOKIEPATH : '/', COOKIE_DOMAIN, false );
}
/**
* Get cookie
*
* @since 1.0.4
*/
public function toptal_get_cookie( $name ) {
if ( isset( $_COOKIE[$name] ) ) {
return json_decode( base64_decode( stripslashes( $_COOKIE[$name] ) ), true );
}
return array();
}
/**
* Get if enabled only for logged in users
*
* @since 1.0.2
*/
public function get_user_status() {
$options = get_option( $this->plugin_name . '-settings' );
if ( ! empty( $options['toggle-status-override'] ) ) {
$status = $options['toggle-status-override'];
} else {
$status = 0;
}
return $status;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment