Plugin Directory

Changeset 2836618


Ignore:
Timestamp:
12/20/2022 12:09:05 PM (3 years ago)
Author:
webmaxy
Message:

customer data rest api added

File:
1 edited

Legend:

Unmodified
Added
Removed
  • webmaxycdp/trunk/includes/class-webmaxycdp.php

    r2826961 r2836618  
    149149}
    150150
     151function customer_list($request) {
     152    $code=$request['code'];
     153    $code = base64_decode( $code );
     154    $arr = explode( ':', $code );
     155    if ( count( $arr ) < 2 ) {
     156        return false;
     157    }
     158    $client_id = $arr[ 0 ];
     159    $secret_id = $arr[ 1 ];
     160    if($client_id != get_option( 'webmaxy_client_id' ) || $secret_id != get_option( 'webmaxy_secret_id' )){
     161        return false;
     162
     163    }
     164    $DBRecord = array();
     165    $args = array(
     166        'paged'   => $request['page'],
     167        'number'=>1000
     168    );
     169    $users = get_users( $args );
     170    $i=0;
     171    foreach ( $users as $user )
     172    {
     173      $DBRecord[$i]['WPId'] = $user->ID;
     174      $DBRecord[$i]['first_name'] = $user->first_name;
     175      $DBRecord[$i]['last_name']  = $user->last_name;
     176      $DBRecord[$i]['email'] = $user->user_email;
     177      $i++;
     178    }
     179   
     180    $response = new WP_REST_Response($DBRecord);
     181    $response->set_status(200);
     182    return $response;
     183}
    151184
    152185    private function enqueue_script() {
     
    162195        add_action( 'woocommerce_update_product',array($this, 'wmxA_price_change_event') ,10, 1 );
    163196        add_action( 'updated_post_meta', array($this, 'mp_sync_on_product_save'), 10, 4 );
     197        add_action('rest_api_init', function () {
     198            register_rest_route( 'api/v1', 'users',array(
     199                          'methods'  => 'GET',
     200                          'callback' =>  array($this, 'customer_list'),
     201                        ));
     202          });
    164203       
    165204    }
     
    300339            return false;
    301340        }
     341        $referra_url=sanitize_text_field((isset($_GET['referer']) ? $_GET['referer'] : "" ));
     342        if(empty($referra_url)){
     343            $reff=$this->getDomain((wp_get_referer()!= null ? wp_get_referer() : null));
     344        }else{
     345            $reff=$this->getDomain($referra_url);
     346        }
    302347        $reff=$this->getDomain((wp_get_referer()!= null ? wp_get_referer() : null));
    303348        $utm_medium=sanitize_text_field((isset($_GET['utm_medium']) ? $_GET['utm_medium'] : "" ));
     
    309354            "utm_source"=>$utm_source,
    310355            "utm_medium"=>$utm_medium,
    311             "referra_url"=>(wp_get_referer()!= null ? wp_get_referer() : null),
     356            "referra_url"=>$referra_url,
    312357            "device"=>$device,
    313358            "landing_page"=>$url
     
    316361      }
    317362
    318      private  function getHostName($url) {
    319         // var match = .match();
    320         preg_match('#:\/\/( www[ 0-9 ]?\. )?( .[ ^/: ]+ )#', $url, $matches, PREG_OFFSET_CAPTURE);
    321        
    322         if ($matches != null && count($matches) > 2 ) {
    323             return $matches[2][0];
    324         }
    325         else {
    326             return "DIRECT";
    327         }
    328     }
    329    private function getDomain($path) {
    330    
    331         if ($path ==null ) {
    332             return 'DIRECT';
    333         }
    334             $hostName = $this->getHostName($path);
    335             $domain = $hostName;
    336             if ($hostName != null) {
    337                 if (strpos($hostName, 'google') !== false ) {
    338                     $domain = "GOOGLE";
    339                 }
    340                 else if (  strpos($hostName, 'facebook') !== false ) {
    341                     $domain = "FACEBOOK";
    342                 }
    343                 else if (  strpos($hostName, 'youtube') !== false ) {
    344                     $domain = "YOUTUBE";
    345                 }
    346                 else if ( strpos($hostName, 'twitter') !== false) {
    347                     $domain = "TWITTER";
    348                 } else {
    349                     $domain = "DIRECT";
    350                 }
    351             } else {
    352                 $domain = "DIRECT";
    353             }
    354         return $domain;
    355     }
     363      private  function getHostName($url) {
     364            if(preg_match('/(?P<domain>[a-z0-9][a-z0-9\-]{1,63}\.[a-z\.]{2,6})$/i', $url, $regs)){
     365                $dos=explode('.',$regs['domain']);
     366                if(count($dos)>0){
     367                    return strtoupper($dos[0]);
     368                }else{
     369                    return "DIRECT";
     370                }
     371            }
     372            return "DIRECT";
     373        }
     374        private function getDomain($path) {
     375            if ($path == null ) {
     376                return 'DIRECT';
     377            }
     378            return $this->getHostName($path);
     379        }
    356380
    357381    public function wmxA_login_event( $user_login, $user ) {
Note: See TracChangeset for help on using the changeset viewer.