%PDF- %PDF-
Direktori : /var/www/projetos/hindi.ongrace.com/wp-content/plugins/wp-members/includes/ |
Current File : /var/www/projetos/hindi.ongrace.com/wp-content/plugins/wp-members/includes/class-wp-members-api.php |
<?php /** * The WP_Members API Class. * * @package WP-Members * @subpackage WP_Members API Object Class * @since 3.1.1 */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit(); } class WP_Members_API { /** * Plugin initialization function. * * @since 3.1.1 */ function __construct() { } /** * Get field keys by meta. * * @since 3.1.1 * * @return array $field_keys */ function get_field_keys_by_meta() { global $wpmem; $field_keys = array(); foreach ( wpmem_fields() as $key => $field ) { $field_keys[ $field[2] ] = $key; } return $field_keys; } /** * Get select field display values. * * @since 3.1.1 * * @param string $meta_key The field's meta key. * @return array $display_values { * The field's display values in an array. * Elements are stored_value => display value * * @type string The display value. * } */ function get_select_display_values( $meta_key ) { global $wpmem; $keys = $this->get_field_keys_by_meta(); $fields = wpmem_fields(); $raw = $fields[ $keys[ $meta_key ] ][7]; $delimiter = ( isset( $fields[ $keys[ $meta_key ][8] ] ) ) ? $fields[ $keys[ $meta_key ][8] ] : '|'; $display_values = array(); foreach ( $raw as $value ) { $pieces = explode( $delimiter, trim( $value ) ); if ( $pieces[1] != '' ) { $display_values[ $pieces[1] ] = $pieces[0]; } } return $display_values; } /** * Gets the display/label value of a field. * * @since 3.1.8 * * @param string $meta The field meta key. * @param string $user_id The user's ID. * @param string $value The field's value, if given. * @return string $value The display value. */ function get_field_display_value( $meta, $user_id, $value = null ) { global $wpmem; $fields = ( isset( $wpmem->fields ) ) ? $wpmem->fields : wpmem_fields(); $field = $fields[ $meta ]; $value = ( $value ) ? $value : get_user_meta( $user_id, $meta, true ); switch ( $field['type'] ) { case 'multiselect': case 'multicheckbox': break; case 'select': case 'radio': $value = $fields[ $meta ]['options'][ $value ]; break; case 'image': case 'file': $value = wp_get_attachment_url( $value ); break; } return $value; } /** * Checks that a given user field value is unique. * * @since 3.1.1 * * @param string $key The field being checked. * @param string $val The value to check. * @return bool True if value if is unique. */ function is_user_value_unique( $key, $val ) { $fields = array( 'ID','user_login','user_pass','user_nicename','user_email','user_url','user_registered','user_activation_key','user_status','display_name' ); // Do we need a meta query or not? $is_meta = ( ! in_array( $key, $fields ) ) ? true : false; if ( $is_meta ) { $args = array( 'meta_query' => array( array( 'key' => $key, 'value' => $val, 'compare' => '=', ) ) ); } else { $args = array( 'search' => $val, 'fields' => 'ID' ); } $users = get_users( $args ); // If there is data in $users, the value is not unique. return ( $users ) ? false : true; } /** * Checks counter for next available number and updates the counter. * * @since 3.1.1 * * @param string $option The wp_options name for the counter setting (required). * @param int $start Number to start with (optional, default 0). * @param int $increment Number to increment by (optional, default 1). * @return int $number Next number in the series. */ function get_incremental_number( $option, $start = 0, $increment = 1 ) { // Get current number from settings $number = get_option( $option ); // If there is no number, start with $start. if ( ! $number ) { $number = ( $start <= 0 ) ? $start : $start - $increment; } // Increment the number and save the setting. $number = $number + $increment; update_option( $option, $number ); // Return the number. return $number; } /** * Generates a unique membership number based on settings. * * @since 3.1.1 * @since 3.2.0 Changed "lead" value to "pad". * * @param array $args { * @type string $option The wp_options name for the counter setting (required). * @type string $meta_key The field's meta key (required). * @type int $start Number to start with (optional, default 0). * @type int $increment Number to increment by (optional, default 1). * @type int $digits Number of digits for the number (optional). * @type boolen $pad Pad leading zeros (optional, default true). * } * @return string $mem_number */ function generate_membership_number( $args ) { $defaults = array( 'start' => 0, 'increment' => 1, 'digits' => 8, 'pad' => true, ); $args = wp_parse_args( $args, $defaults ); do { // Generate the appropriate next number $number = $this->get_incremental_number( $args['option'], $args['start'], $args['increment'] ); // Cast as string, not integer. $mem_number = (string)$number; // Add leading zeros if less than three digits. if ( strlen( $mem_number ) < $args['digits'] ) { $mem_number = ( $args['pad'] ) ? str_pad( $mem_number, $args['digits'], '0', STR_PAD_LEFT ) : $mem_number; } } while ( true !== $this->is_user_value_unique( $args['meta_key'], $mem_number ) ); return $mem_number; } /** * Checks if a given setting is set and enabled. * * @since 3.1.7 * * @global object $wpmem * @param string $setting * @return boolean */ function is_enabled( $setting ) { return ( isset( $wpmem->{$setting} ) && $wpmem->{$setting} ) ? true : false; } } // End of WP_Members_Utilties class.