Wpum_Tokens
Class Wpum_Tokens
Source Source
File: src/integrations/wp-user-manager/tokens/wpum-tokens.php
class Wpum_Tokens { /** * Wpum_Tokens constructor. */ public function __construct() { add_filter( 'automator_maybe_trigger_wpusermanager_wpumregform_tokens', [ $this, 'wpum_possible_tokens', ], 20, 2 ); add_filter( 'automator_maybe_trigger_wpusermanager_wpumuserpphoto_tokens', [ $this, 'wpum_fields_possible_tokens', ], 20, 2 ); add_filter( 'automator_maybe_trigger_wpusermanager_wpumuserpphotor_tokens', [ $this, 'wpum_fields_possible_tokens', ], 20, 2 ); add_filter( 'automator_maybe_trigger_wpusermanager_wpumusercover_tokens', [ $this, 'wpum_fields_possible_tokens', ], 20, 2 ); add_filter( 'automator_maybe_trigger_wpusermanager_wpumuserpcoverr_tokens', [ $this, 'wpum_fields_possible_tokens', ], 20, 2 ); add_filter( 'automator_maybe_trigger_wpusermanager_wpumuserdescription_tokens', [ $this, 'wpum_fields_possible_tokens', ], 20, 2 ); add_filter( 'automator_maybe_parse_token', [ $this, 'parse_wpum_tokens' ], 20, 6 ); } /** * @param array $tokens * @param array $args * * @return array */ public function wpum_possible_tokens( $tokens = array(), $args = array() ) { $form_id = absint( $args['value'] ); $trigger_meta = $args['meta']; if ( empty( $form_id ) ) { return $tokens; } $form = new \WPUM_Registration_Form( $form_id ); if ( ! $form->exists() ) { return $tokens; } if ( $form->exists() ) { $fields = array(); $stored_fields = $form->get_fields(); if ( is_array( $stored_fields ) && ! empty( $stored_fields ) ) { foreach ( $stored_fields as $field ) { $stored_field = new \WPUM_Field( $field ); if ( $stored_field->exists() ) { $fields[] = [ 'tokenId' => $stored_field->get_primary_id(), 'tokenName' => $stored_field->get_name(), 'tokenType' => $stored_field->get_type(), 'tokenIdentifier' => $trigger_meta, ]; } } } } $tokens = array_merge( $tokens, $fields ); return $tokens; } /** * @param array $tokens * @param array $args * * @return array */ public function wpum_profile_possible_tokens( $tokens = array(), $args = array() ) { $trigger_meta = $args['meta']; $account_fields = WPUM()->fields->get_fields( [ 'group_id' => 1, 'orderby' => 'field_order', 'order' => 'ASC', ] ); foreach ( $account_fields as $field ) { $field = new \WPUM_Field( $field ); if ( $field->exists() && $field->get_meta( 'editing' ) == 'public' && $field->get_primary_id() !== 'user_password' ) { // Skip the avatar field if disabled. if ( $field->get_primary_id() == 'user_avatar' && ! wpum_get_option( 'custom_avatars' ) ) { continue; } $fields[] = [ 'tokenId' => $field->get_primary_id(), 'tokenName' => $field->get_name(), 'tokenType' => $field->get_type(), 'tokenIdentifier' => $trigger_meta, ]; } } $tokens = array_merge( $tokens, $fields ); return $tokens; } /** * @param array $tokens * @param array $args * * @return array */ public function wpum_fields_possible_tokens( $tokens = array(), $args = array() ) { $trigger_meta = $args['meta']; $all_fields = WPUM()->fields->get_fields( [ 'group_id' => false, 'orderby' => 'field_order', 'order' => 'ASC', ] ); foreach ( $all_fields as $field ) { $field = new \WPUM_Field( $field ); if ( $field->exists() && $field->get_meta( 'editing' ) == 'public' && $field->get_primary_id() !== 'user_password' ) { // Skip the avatar field if disabled. if ( $field->get_primary_id() == 'user_avatar' && ! wpum_get_option( 'custom_avatars' ) ) { continue; } $fields[] = [ 'tokenId' => $field->get_primary_id(), 'tokenName' => $field->get_name(), 'tokenType' => $field->get_type(), 'tokenIdentifier' => $trigger_meta, ]; } } $tokens = array_merge( $tokens, $fields ); return $tokens; } /** * @param $value * @param $pieces * @param $recipe_id * @param $trigger_data * @param $user_id * @param $replace_args * * @return mixed */ public function parse_wpum_tokens( $value, $pieces, $recipe_id, $trigger_data, $user_id, $replace_args ) { if ( $pieces ) { if ( in_array( 'WPUMREGFORM', $pieces ) || in_array( 'WPUMUSERREGISTERED', $pieces ) || in_array( 'WPUMUSERDESCRIPTION', $pieces ) || in_array( 'WPUMDESCRIPTIONUPDATED', $pieces ) ) { global $wpdb; $trigger_id = $pieces[0]; $trigger_meta = $pieces[2]; $trigger_log_id = isset( $replace_args['trigger_log_id'] ) ? absint( $replace_args['trigger_log_id'] ) : 0; $entry = $wpdb->get_var( "SELECT meta_value FROM {$wpdb->prefix}uap_trigger_log_meta WHERE meta_key = '{$trigger_meta}' AND automator_trigger_log_id = {$trigger_log_id} AND automator_trigger_id = {$trigger_id} LIMIT 0,1" ); $value = maybe_unserialize( $entry ); } elseif ( in_array( 'WPUMUSERPPHOTO', $pieces ) || in_array( 'WPUMPPUPDATED', $pieces ) || in_array( 'WPUMUSERPPHOTOR', $pieces ) || in_array( 'WPUMPPREMOVED', $pieces ) || in_array( 'WPUMUSERCOVER', $pieces ) || in_array( 'WPUMCPUPDATED', $pieces ) || in_array( 'WPUMUSERPCOVERR', $pieces ) || in_array( 'WPUMPCREMOVED', $pieces ) ) { if ( $pieces[2] == 'WPUMPPUPDATED' || $pieces[2] == 'WPUMPPREMOVED' || $pieces[2] == 'WPUMCPUPDATED' || $pieces[2] == 'WPUMPCREMOVED' ) { global $wpdb; $trigger_id = $pieces[0]; $trigger_meta = $pieces[2]; $trigger_log_id = isset( $replace_args['trigger_log_id'] ) ? absint( $replace_args['trigger_log_id'] ) : 0; $entry = $wpdb->get_var( "SELECT meta_value FROM {$wpdb->prefix}uap_trigger_log_meta WHERE meta_key = '{$trigger_meta}' AND automator_trigger_log_id = {$trigger_log_id} AND automator_trigger_id = {$trigger_id} LIMIT 0,1" ); $value = maybe_unserialize( $entry ); } else { $user = get_user_by( 'id', $user_id ); $field = $pieces[2]; $entry = $this->get_field_value( $user, $field ); $value = maybe_unserialize( $entry ); } } } return $value; } /** * @param $user * @param $field * * @return mixed */ function get_field_value( $user, $field ) { switch ( $field ) { case 'user_firstname': $value = $user->user_firstname; break; case 'user_lastname': $value = $user->user_lastname; break; case 'user_email': $value = $user->user_email; break; case 'user_nickname': $value = get_user_meta( $user->ID, 'nickname', true ); break; case 'user_website': $value = $user->user_url; break; case 'user_description': $value = get_user_meta( $user->ID, 'description', true ); break; case 'user_displayname': $value = $user->display_name; break; case 'user_avatar': $value = carbon_get_user_meta( $user->ID, 'current_user_avatar' ); break; case 'user_cover': $value = carbon_get_user_meta( $user->ID, 'user_cover' ); break; default: global $wpdb; $field_id = $wpdb->get_var( "SELECT id FROM {$wpdb->prefix}wpum_fields WHERE type = '{$field}' LIMIT 0,1" ); $value = get_user_meta( $user->ID, WPUM()->field_meta->get_meta( $field_id, 'user_meta_key' ), true ); } return $value; } }
Expand full source code Collapse full source code View on Github
Methods Methods
- __construct — Wpum_Tokens constructor.
- get_field_value
- parse_wpum_tokens
- wpum_fields_possible_tokens
- wpum_possible_tokens
- wpum_profile_possible_tokens