class Akismet_REST_API { /** * Register the REST API routes. */ public static function init() { if ( ! function_exists( 'register_rest_route' ) ) { // The REST API wasn't integrated into core until 4.4, and we support 4.0+ (for now). return false; } register_rest_route( 'akismet/v1', '/key', array( array( 'methods' => WP_REST_Server::READABLE, 'permission_callback' => array( 'Akismet_REST_API', 'privileged_permission_callback' ), 'callback' => array( 'Akismet_REST_API', 'get_key' ), ), array( 'methods' => WP_REST_Server::EDITABLE, 'permission_callback' => array( 'Akismet_REST_API', 'privileged_permission_callback' ), 'callback' => array( 'Akismet_REST_API', 'set_key' ), 'args' => array( 'key' => array( 'required' => true, 'type' => 'string', 'sanitize_callback' => array( 'Akismet_REST_API', 'sanitize_key' ), 'description' => __( 'A 12-character Akismet API key. Available at akismet.com/get/', 'akismet' ), ), ), ), array( 'methods' => WP_REST_Server::DELETABLE, 'permission_callback' => array( 'Akismet_REST_API', 'privileged_permission_callback' ), 'callback' => array( 'Akismet_REST_API', 'delete_key' ), ) ) ); register_rest_route( 'akismet/v1', '/settings/', array( array( 'methods' => WP_REST_Server::READABLE, 'permission_callback' => array( 'Akismet_REST_API', 'privileged_permission_callback' ), 'callback' => array( 'Akismet_REST_API', 'get_settings' ), ), array( 'methods' => WP_REST_Server::EDITABLE, 'permission_callback' => array( 'Akismet_REST_API', 'privileged_permission_callback' ), 'callback' => array( 'Akismet_REST_API', 'set_boolean_settings' ), 'args' => array( 'akismet_strictness' => array( 'required' => false, 'type' => 'boolean', 'description' => __( 'If true, Akismet will automatically discard the worst spam automatically rather than putting it in the spam folder.', 'akismet' ), ), 'akismet_show_user_comments_approved' => array( 'required' => false, 'type' => 'boolean', 'description' => __( 'If true, show the number of approved comments beside each comment author in the comments list page.', 'akismet' ), ), ), ) ) ); register_rest_route( 'akismet/v1', '/stats', array( 'methods' => WP_REST_Server::READABLE, 'permission_callback' => array( 'Akismet_REST_API', 'privileged_permission_callback' ), 'callback' => array( 'Akismet_REST_API', 'get_stats' ), 'args' => array( 'interval' => array( 'required' => false, 'type' => 'string', 'sanitize_callback' => array( 'Akismet_REST_API', 'sanitize_interval' ), 'description' => __( 'The time period for which to retrieve stats. Options: 60-days, 6-months, all', 'akismet' ), 'default' => 'all', ), ), ) ); register_rest_route( 'akismet/v1', '/stats/(?P[\w+])', array( 'args' => array( 'interval' => array( 'description' => __( 'The time period for which to retrieve stats. Options: 60-days, 6-months, all', 'akismet' ), 'type' => 'string', ), ), array( 'methods' => WP_REST_Server::READABLE, 'permission_callback' => array( 'Akismet_REST_API', 'privileged_permission_callback' ), 'callback' => array( 'Akismet_REST_API', 'get_stats' ), ) ) ); register_rest_route( 'akismet/v1', '/alert', array( array( 'methods' => WP_REST_Server::READABLE, 'permission_callback' => array( 'Akismet_REST_API', 'remote_call_permission_callback' ), 'callback' => array( 'Akismet_REST_API', 'get_alert' ), 'args' => array( 'key' => array( 'required' => false, 'type' => 'string', 'sanitize_callback' => array( 'Akismet_REST_API', 'sanitize_key' ), 'description' => __( 'A 12-character Akismet API key. Available at akismet.com/get/', 'akismet' ), ), ), ), array( 'methods' => WP_REST_Server::EDITABLE, 'permission_callback' => array( 'Akismet_REST_API', 'remote_call_permission_callback' ), 'callback' => array( 'Akismet_REST_API', 'set_alert' ), 'args' => array( 'key' => array( 'required' => false, 'type' => 'string', 'sanitize_callback' => array( 'Akismet_REST_API', 'sanitize_key' ), 'description' => __( 'A 12-character Akismet API key. Available at akismet.com/get/', 'akismet' ), ), ), ), array( 'methods' => WP_REST_Server::DELETABLE, 'permission_callback' => array( 'Akismet_REST_API', 'remote_call_permission_callback' ), 'callback' => array( 'Akismet_REST_API', 'delete_alert' ), 'args' => array( 'key' => array( 'required' => false, 'type' => 'string', 'sanitize_callback' => array( 'Akismet_REST_API', 'sanitize_key' ), 'description' => __( 'A 12-character Akismet API key. Available at akismet.com/get/', 'akismet' ), ), ), ) ) ); } /** * Get the current Akismet API key. * * @param WP_REST_Request $request * @return WP_Error|WP_REST_Response */ public static function get_key( $request = null ) { return rest_ensure_response( Akismet::get_api_key() ); } /** * Set the API key, if possible. * * @param WP_REST_Request $request * @return WP_Error|WP_REST_Response */ public static function set_key( $request ) { if ( defined( 'WPCOM_API_KEY' ) ) { return rest_ensure_response( new WP_Error( 'hardcoded_key', __( 'This site\'s API key is hardcoded and cannot be changed via the API.', 'akismet' ), array( 'status'=> 409 ) ) ); } $new_api_key = $request->get_param( 'key' ); if ( ! self::key_is_valid( $new_api_key ) ) { return rest_ensure_response( new WP_Error( 'invalid_key', __( 'The value provided is not a valid and registered API key.', 'akismet' ), array( 'status' => 400 ) ) ); } update_option( 'wordpress_api_key', $new_api_key ); return self::get_key(); } /** * Unset the API key, if possible. * * @param WP_REST_Request $request * @return WP_Error|WP_REST_Response */ public static function delete_key( $request ) { if ( defined( 'WPCOM_API_KEY' ) ) { return rest_ensure_response( new WP_Error( 'hardcoded_key', __( 'This site\'s API key is hardcoded and cannot be deleted.', 'akismet' ), array( 'status'=> 409 ) ) ); } delete_option( 'wordpress_api_key' ); return rest_ensure_response( true ); } /** * Get the Akismet settings. * * @param WP_REST_Request $request * @return WP_Error|WP_REST_Response */ public static function get_settings( $request = null ) { return rest_ensure_response( array( 'akismet_strictness' => ( get_option( 'akismet_strictness', '1' ) === '1' ), 'akismet_show_user_comments_approved' => ( get_option( 'akismet_show_user_comments_approved', '1' ) === '1' ), ) ); } /** * Update the Akismet settings. * * @param WP_REST_Request $request * @return WP_Error|WP_REST_Response */ public static function set_boolean_settings( $request ) { foreach ( array( 'akismet_strictness', 'akismet_show_user_comments_approved', ) as $setting_key ) { $setting_value = $request->get_param( $setting_key ); if ( is_null( $setting_value ) ) { // This setting was not specified. continue; } // From 4.7+, WP core will ensure that these are always boolean // values because they are registered with 'type' => 'boolean', // but we need to do this ourselves for prior versions. $setting_value = Akismet_REST_API::parse_boolean( $setting_value ); update_option( $setting_key, $setting_value ? '1' : '0' ); } return self::get_settings(); } /** * Parse a numeric or string boolean value into a boolean. * * @param mixed $value The value to convert into a boolean. * @return bool The converted value. */ public static function parse_boolean( $value ) { switch ( $value ) { case true: case 'true': case '1': case 1: return true; case false: case 'false': case '0': case 0: return false; default: return (bool) $value; } } /** * Get the Akismet stats for a given time period. * * Possible `interval` values: * - all * - 60-days * - 6-months * * @param WP_REST_Request $request * @return WP_Error|WP_REST_Response */ public static function get_stats( $request ) { $api_key = Akismet::get_api_key(); $interval = $request->get_param( 'interval' ); $stat_totals = array(); $response = Akismet::http_post( Akismet::build_query( array( 'blog' => get_option( 'home' ), 'key' => $api_key, 'from' => $interval ) ), 'get-stats' ); if ( ! empty( $response[1] ) ) { $stat_totals[$interval] = json_decode( $response[1] ); } return rest_ensure_response( $stat_totals ); } /** * Get the current alert code and message. Alert codes are used to notify the site owner * if there's a problem, like a connection issue between their site and the Akismet API, * invalid requests being sent, etc. * * @param WP_REST_Request $request * @return WP_Error|WP_REST_Response */ public static function get_alert( $request ) { return rest_ensure_response( array( 'code' => get_option( 'akismet_alert_code' ), 'message' => get_option( 'akismet_alert_msg' ), ) ); } /** * Update the current alert code and message by triggering a call to the Akismet server. * * @param WP_REST_Request $request * @return WP_Error|WP_REST_Response */ public static function set_alert( $request ) { delete_option( 'akismet_alert_code' ); delete_option( 'akismet_alert_msg' ); // Make a request so the most recent alert code and message are retrieved. Akismet::verify_key( Akismet::get_api_key() ); return self::get_alert( $request ); } /** * Clear the current alert code and message. * * @param WP_REST_Request $request * @return WP_Error|WP_REST_Response */ public static function delete_alert( $request ) { delete_option( 'akismet_alert_code' ); delete_option( 'akismet_alert_msg' ); return self::get_alert( $request ); } private static function key_is_valid( $key ) { $response = Akismet::http_post( Akismet::build_query( array( 'key' => $key, 'blog' => get_option( 'home' ) ) ), 'verify-key' ); if ( $response[1] == 'valid' ) { return true; } return false; } public static function privileged_permission_callback() { return current_user_can( 'manage_options' ); } /** * For calls that Akismet.com makes to the site to clear outdated alert codes, use the API key for authorization. */ public static function remote_call_permission_callback( $request ) { $local_key = Akismet::get_api_key(); return $local_key && ( strtolower( $request->get_param( 'key' ) ) === strtolower( $local_key ) ); } public static function sanitize_interval( $interval, $request, $param ) { $interval = trim( $interval ); $valid_intervals = array( '60-days', '6-months', 'all', ); if ( ! in_array( $interval, $valid_intervals ) ) { $interval = 'all'; } return $interval; } public static function sanitize_key( $key, $request, $param ) { return trim( $key ); } } Valentines gifts for him | Bearded Nom Nom /** * Redux Framework is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 2 of the License, or * any later version. * * Redux Framework is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Redux Framework. If not, see . * * @package Redux Framework * @subpackage Spectrum Color Picker * @author Kevin Provance (kprovance) * @version 1.0.0 */ // Exit if accessed directly if( !defined( 'ABSPATH' ) ) { exit; } // Don't duplicate me! if( !class_exists( 'ReduxFramework_color_rgba' ) ) { /** * Main ReduxFramework_color_rgba class * * @since 1.0.0 */ class ReduxFramework_color_rgba { /** * Class Constructor. Defines the args for the extions class * * @since 1.0.0 * @access public * @param array $field Field sections. * @param array $value Values. * @param array $parent Parent object. * @return void */ public function __construct( $field = array(), $value ='', $parent ) { // Set required variables $this->parent = $parent; $this->field = $field; $this->value = $value; $defaults = array( 'color' => '', 'alpha' => 1, 'rgba' => '' ); $this->value = wp_parse_args( $this->value, $defaults ); $this->field['options']['show_input'] = isset($this->field['options']['show_input']) ? $this->field['options']['show_input'] : true; $this->field['options']['show_initial'] = isset($this->field['options']['show_initial']) ? $this->field['options']['show_initial'] : false; $this->field['options']['show_alpha'] = isset($this->field['options']['show_alpha']) ? $this->field['options']['show_alpha'] : true; $this->field['options']['show_palette'] = isset($this->field['options']['show_palette']) ? $this->field['options']['show_palette'] : false; $this->field['options']['show_palette_only'] = isset($this->field['options']['show_palette_only']) ? $this->field['options']['show_palette_only'] : false; $this->field['options']['max_palette_size'] = isset($this->field['options']['max_palette_size']) ? $this->field['options']['max_palette_size'] : 10; $this->field['options']['show_selection_palette'] = isset($this->field['options']['show_selection_palette']) ? $this->field['options']['show_selection_palette'] : false; $this->field['options']['allow_empty'] = isset($this->field['options']['allow_empty']) ? $this->field['options']['allow_empty'] : true; $this->field['options']['clickout_fires_change'] = isset($this->field['options']['clickout_fires_change']) ? $this->field['options']['clickout_fires_change'] : false; $this->field['options']['choose_text'] = isset($this->field['options']['choose_text']) ? $this->field['options']['choose_text'] : 'Choose'; $this->field['options']['cancel_text'] = isset($this->field['options']['cancel_text']) ? $this->field['options']['cancel_text'] : 'Cancel'; $this->field['options']['show_buttons'] = isset($this->field['options']['show_buttons']) ? $this->field['options']['show_buttons'] : true; $this->field['options']['palette'] = isset($this->field['options']['palette']) ? $this->field['options']['palette'] : null; $this->field['options']['input_text'] = isset($this->field['options']['input_text']) ? $this->field['options']['input_text'] : 'Select Color'; // Convert empty array to null, if there. $this->field['options']['palette'] = empty($this->field['options']['palette']) ? null : $this->field['options']['palette']; $this->field['output_transparent'] = isset($this->field['output_transparent']) ? $this->field['output_transparent'] : false; } /** * Field Render Function. * * Takes the vars and outputs the HTML for the field in the settings * * @since 1.0.0 * @access public * @return void */ public function render() { $field_id = $this->field['id']; // Color picker container echo '
'; // Colour picker layout $opt_name = $this->parent->args['opt_name']; if ('' == $this->value['color'] || 'transparent' == $this->value['color']) { $color = ''; } else { $color = Redux_Helpers::hex2rgba($this->value['color'], $this->value['alpha']); } if ($this->value['rgba'] == ''){ $this->value['rgba'] = Redux_Helpers::hex2rgba($this->value['color'], $this->value['alpha']); } echo ''; echo ''; // Hidden input for alpha channel echo ''; // Hidden input for rgba echo ''; echo '
'; } /** * Enqueue Function. * * If this field requires any scripts, or css define this function and register/enqueue the scripts/css * * @since 1.0.0 * @access public * @return void */ public function enqueue() { // Set up min files for dev_mode = false. $min = Redux_Functions::isMin(); // Field dependent JS if (!wp_script_is ( 'redux-field-color-rgba-js' )) { wp_enqueue_script( 'redux-field-color-rgba-js', ReduxFramework::$_url . 'inc/fields/color_rgba/field_color_rgba' . Redux_Functions::isMin() . '.js', array('jquery', 'redux-spectrum-js'), time(), true ); } // Spectrum CSS if (!wp_style_is ( 'redux-spectrum-css' )) { wp_enqueue_style('redux-spectrum-css'); } if ($this->parent->args['dev_mode']) { if (!wp_style_is ( 'redux-field-color-rgba-css' )) { wp_enqueue_style( 'redux-field-color-rgba-css', ReduxFramework::$_url . 'inc/fields/color_rgba/field_color_rgba.css', array(), time(), 'all' ); } } } /** * getColorVal. Returns formatted color val in hex or rgba. * * If this field requires any scripts, or css define this function and register/enqueue the scripts/css * * @since 1.0.0 * @access private * @return string */ private function getColorVal(){ // No notices $color = ''; $alpha = 1; $rgba = ''; // Must be an array if (is_array($this->value)) { // Enum array to parse values foreach($this->value as $id => $val) { // Sanitize alpha if ($id == 'alpha') { $alpha = !empty($val) ? $val : 1; } elseif ($id == 'color') { $color = !empty($val) ? $val : ''; } elseif ($id == 'rgba') { $rgba = !empty($val) ? $val : ''; $rgba = Redux_Helpers::hex2rgba($color, $alpha); } } // Only build rgba output if alpha ia less than 1 if ( $alpha < 1 && $alpha <> '' ) { $color = $rgba; } } return $color; } /** * Output Function. * * Used to enqueue to the front-end * * @since 1.0.0 * @access public * @return void */ public function output() { if (!empty($this->value)) { $style = ''; $mode = ( isset( $this->field['mode'] ) && ! empty( $this->field['mode'] ) ? $this->field['mode'] : 'color' ); $color_val = $this->getColorVal(); $style .= $mode . ':' . $color_val . ';'; if ( ! empty( $this->field['output'] ) && is_array( $this->field['output'] ) ) { $css = Redux_Functions::parseCSS( $this->field['output'], $style, $color_val ); $this->parent->outputCSS .= $css; } if ( ! empty( $this->field['compiler'] ) && is_array( $this->field['compiler'] ) ) { $css = Redux_Functions::parseCSS( $this->field['compiler'], $style, $color_val ); $this->parent->compilerCSS .= $css ; } } } } }

Follow me

Valentines gifts for him
February 4, 2016|Gifts

Valentines gifts for him

Valentines gifts for him

vdaybnn

Getting the right Valentine’s gifts for him can be difficult. Most everyone knows what to get a woman for the most part. Todays marketing makes it pretty easy to have a nice list to pick from.
If its an actual gift like jewelry or just a simple gift like chocolate and flowers.

But many women find themselves in a blank stare when it comes to getting that special someone in their life a gift for valentines. Valentines day has forever been marketed to men for women but that has changed a lot in the last decade.  I recently read an article on ManWifeDog Blog where she talks about Should Men Get Gifts On Valentine’s Day? where she discussed this very question.
“Great post check it out.”

I’m a man that likes to get gifts for any holiday where a gift is traditionally given.
So let me help make it easier for you to narrow it down to what he really wants and will even be surprised by.

1. If he has a beard as he should. I would suggest beard oils and beard butter!

Beard Butter is the best thing I have ever discovered for my beard hands down. The best kind I have come across is Maestro’s Beard Butter “Sprinted Blend”

Maestro’s Beard Butter

 

 

 

 

 

As for beard oils my favorite right now is from the bearded brothers over at Dollar Beard Club. This one is pretty awesome because its a subscription so just about the time I usually run out the next bottle shows up in the mail in a very manly cool box.

My favorite oil from them is their Sandalwood Beard Oil

dbcmail1 dbcmail2

 

 

 

 

 

 

 

 

 

Beard Wax! Ok so I don’t use this stuff a lot. The times I do use it is for special occasions, dates, formal events, etc. What it does is keep your beard exactly how you want it for several hours.
Hungarian Beard Wax by Gold-Dachs this stuff smells amazing and holds your beard or mustache exactly the way you want it to look. sometimes I use it just on my mustache for only the smell.

41OZ0WTYwWL

 

 

 

 

 

 

 

 

 

2. Amazon Gift Cards! I like to pick out my own stuff so I love amazon gift cards and cash.
With an amazon gift card you can pretty much buy anything you want and if you have prime fast and sometimes free shipping. Amazon also makes a shopping list for the special guy in your life.

amazongiftcard

 

 

 

 

 

 

 

3. Under wear! Most of us guys neglect to buy new ones until we have to so why not get him what he needs?

Not just any under wear but underwear for men. Duluth Trading Co. Men’s Buck Naked Briefs. These are raved about and have insane customer reviews and thats saying a lot if a man will go back online and rate an underwear!

buck naked

 

 

 

 

 

4. Huckberry.com! Pretty much anything from these guys.

They have a little of everything manly. CLOTHING, FOOTWEAR, EVERYDAY CARRY, WATCHES, OUTDOORS. 

huckberry

 

 

 

5. Guns Knives and Tools!

You can never go wrong with these the only issue is they will probably want to pick out their own.

I wish you a wonderful Valentines Day and I hope this helps make it extra awesome!
Check out another post! WatchYTFB

no coments
Share
Maybe Something Good?
About Bearded Nom Nom
Encouraging fathers, beards, integrity...beards...fun...and more beards.
My Wife Wrote a Book!
Whatcha Think?