3v4l.org

run code in 500+ PHP versions simultaneously
<?php /** * Plugin Name: CNMG Shop Ghana MLM Hierarchy * Plugin URI: https://example.com/cnmg-mlm * Description: Custom MLM registration system for CNMG Shop Ghana district hierarchy (District Aggregator → Zonal Agents → Community Agents). * Version: 1.0.0 * Author: Grok by xAI * License: GPL-2.0+ */ // If this file is called directly, abort. if ( ! defined( 'WPINC' ) ) { die; } define( 'CNMG_MLM_VERSION', '1.0.0' ); define( 'CNMG_MLM_PATH', plugin_dir_path( __FILE__ ) ); define( 'CNMG_MLM_URL', plugin_dir_url( __FILE__ ) ); /* === Activate: Create Custom Roles === */ function cnmg_mlm_activate() { add_role( 'district_aggregator', 'District Aggregator', array( 'read' => true ) ); add_role( 'zonal_agent', 'Zonal Agent', array( 'read' => true ) ); add_role( 'community_agent', 'Community Agent', array( 'read' => true ) ); } register_activation_hook( __FILE__, 'cnmg_mlm_activate' ); /* === User Profile Fields === */ function cnmg_mlm_user_profile_fields( $user ) { ?> <h3>CNMG MLM Hierarchy Info</h3> <table class="form-table"> <tr> <th><label>Sponsor ID</label></th> <td><input type="text" name="sponsor_id" value="<?php echo esc_attr( get_user_meta( $user->ID, 'sponsor_id', true ) ); ?>" class="regular-text" /></td> </tr> <tr> <th><label>Agent Type</label></th> <td> <select name="agent_type"> <option value="district_aggregator" <?php selected( get_user_meta( $user->ID, 'agent_type', true ), 'district_aggregator' ); ?>>District Aggregator</option> <option value="zonal_agent" <?php selected( get_user_meta( $user->ID, 'agent_type', true ), 'zonal_agent' ); ?>>Zonal Agent</option> <option value="community_agent" <?php selected( get_user_meta( $user->ID, 'agent_type', true ), 'community_agent' ); ?>>Community Agent</option> </select> </td> </tr> <tr> <th><label>District</label></th> <td><input type="text" name="district" value="<?php echo esc_attr( get_user_meta( $user->ID, 'district', true ) ); ?>" class="regular-text" /></td> </tr> <tr> <th><label>Zone</label></th> <td><input type="text" name="zone" value="<?php echo esc_attr( get_user_meta( $user->ID, 'zone', true ) ); ?>" class="regular-text" /></td> </tr> </table> <?php } add_action( 'show_user_profile', 'cnmg_mlm_user_profile_fields' ); add_action( 'edit_user_profile', 'cnmg_mlm_user_profile_fields' ); function cnmg_mlm_save_user_profile( $user_id ) { if ( ! current_user_can( 'edit_user', $user_id ) ) return; update_user_meta( $user_id, 'sponsor_id', sanitize_text_field( $_POST['sponsor_id'] ?? '' ) ); update_user_meta( $user_id, 'agent_type', sanitize_text_field( $_POST['agent_type'] ?? '' ) ); update_user_meta( $user_id, 'district', sanitize_text_field( $_POST['district'] ?? '' ) ); update_user_meta( $user_id, 'zone', sanitize_text_field( $_POST['zone'] ?? '' ) ); } add_action( 'personal_options_update', 'cnmg_mlm_save_user_profile' ); add_action( 'edit_user_profile_update', 'cnmg_mlm_save_user_profile' ); /* === Registration Form Shortcode === */ function cnmg_mlm_registration_form() { ob_start(); ?> <form method="post" style="max-width:600px; margin:30px auto; padding:20px; border:1px solid #ddd;"> <?php wp_nonce_field( 'cnmg_register', 'cnmg_nonce' ); ?> <p><label>Username<br><input type="text" name="username" required style="width:100%;"></label></p> <p><label>Email<br><input type="email" name="email" required style="width:100%;"></label></p> <p><label>Password<br><input type="password" name="password" required style="width:100%;"></label></p> <p><label>Sponsor ID<br><input type="text" name="sponsor_id" required style="width:100%;"></label></p> <p><label>Agent Type<br> <select name="agent_type" required style="width:100%;"> <option value="community_agent">Community Agent</option> <option value="zonal_agent">Zonal Agent</option> <option value="district_aggregator">District Aggregator</option> </select> </label></p> <p><label>District<br><input type="text" name="district" required style="width:100%;"></label></p> <p><label>Zone (optional)<br><input type="text" name="zone" style="width:100%;"></label></p> <input type="submit" name="cnmg_register" value="Register as Agent" style="padding:10px 20px;"> </form> <?php return ob_get_clean(); } add_shortcode( 'cnmg_registration_form', 'cnmg_mlm_registration_form' ); /* === Handle Registration === */ function cnmg_mlm_handle_registration() { if ( ! isset( $_POST['cnmg_register'] ) || ! wp_verify_nonce( $_POST['cnmg_nonce'], 'cnmg_register' ) ) { return; } $username = sanitize_user( $_POST['username'] ); $email = sanitize_email( $_POST['email'] ); $password = $_POST['password']; $sponsor_id = sanitize_text_field( $_POST['sponsor_id'] ); $agent_type = sanitize_text_field( $_POST['agent_type'] ); $district = sanitize_text_field( $_POST['district'] ); $zone = sanitize_text_field( $_POST['zone'] ); if ( username_exists( $username ) || email_exists( $email ) ) { echo '<p style="color:red;">Username or email already exists.</p>'; return; } $user_id = wp_create_user( $username, $password, $email ); if ( is_wp_error( $user_id ) ) { echo '<p style="color:red;">' . $user_id->get_error_message() . '</p>'; return; } $user = new WP_User( $user_id ); $user->set_role( $agent_type ); update_user_meta( $user_id, 'sponsor_id', $sponsor_id ); update_user_meta( $user_id, 'agent_type', $agent_type ); update_user_meta( $user_id, 'district', $district ); update_user_meta( $user_id, 'zone', $zone ); echo '<p style="color:green; font-weight:bold;">Registration successful! Your Agent ID is: <strong>' . $user_id . '</strong></p>'; } add_action( 'template_redirect', 'cnmg_mlm_handle_registration' );
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 3, Position 2 = 5
Branch analysis from position: 3
1 jumps found. (Code = 61) Position 1 = -2
Branch analysis from position: 5
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/4I4Gt
function name:  (null)
number of ops:  52
compiled vars:  none
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   12     0  E >   DEFINED                                              ~0      'WPINC'
          1        BOOL_NOT                                             ~1      ~0
          2      > JMPZ                                                         ~1, ->5
   13     3    > > INIT_FCALL                                                   'exit'
          4*       DO_ICALL                                                     
   16     5    >   INIT_FCALL                                                   'define'
          6        SEND_VAL                                                     'CNMG_MLM_VERSION'
          7        SEND_VAL                                                     '1.0.0'
          8        DO_ICALL                                                     
   17     9        INIT_FCALL                                                   'define'
         10        SEND_VAL                                                     'CNMG_MLM_PATH'
         11        INIT_FCALL_BY_NAME                                           'plugin_dir_path'
         12        SEND_VAL_EX                                                  '%2Fin%2F4I4Gt'
         13        DO_FCALL                                          0  $4      
         14        SEND_VAR                                                     $4
         15        DO_ICALL                                                     
   18    16        INIT_FCALL                                                   'define'
         17        SEND_VAL                                                     'CNMG_MLM_URL'
         18        INIT_FCALL_BY_NAME                                           'plugin_dir_url'
         19        SEND_VAL_EX                                                  '%2Fin%2F4I4Gt'
         20        DO_FCALL                                          0  $6      
         21        SEND_VAR                                                     $6
         22        DO_ICALL                                                     
   26    23        INIT_FCALL_BY_NAME                                           'register_activation_hook'
         24        SEND_VAL_EX                                                  '%2Fin%2F4I4Gt'
         25        SEND_VAL_EX                                                  'cnmg_mlm_activate'
         26        DO_FCALL                                          0          
   58    27        INIT_FCALL_BY_NAME                                           'add_action'
         28        SEND_VAL_EX                                                  'show_user_profile'
         29        SEND_VAL_EX                                                  'cnmg_mlm_user_profile_fields'
         30        DO_FCALL                                          0          
   59    31        INIT_FCALL_BY_NAME                                           'add_action'
         32        SEND_VAL_EX                                                  'edit_user_profile'
         33        SEND_VAL_EX                                                  'cnmg_mlm_user_profile_fields'
         34        DO_FCALL                                          0          
   68    35        INIT_FCALL_BY_NAME                                           'add_action'
         36        SEND_VAL_EX                                                  'personal_options_update'
         37        SEND_VAL_EX                                                  'cnmg_mlm_save_user_profile'
         38        DO_FCALL                                          0          
   69    39        INIT_FCALL_BY_NAME                                           'add_action'
         40        SEND_VAL_EX                                                  'edit_user_profile_update'
         41        SEND_VAL_EX                                                  'cnmg_mlm_save_user_profile'
         42        DO_FCALL                                          0          
   94    43        INIT_FCALL_BY_NAME                                           'add_shortcode'
         44        SEND_VAL_EX                                                  'cnmg_registration_form'
         45        SEND_VAL_EX                                                  'cnmg_mlm_registration_form'
         46        DO_FCALL                                          0          
  131    47        INIT_FCALL_BY_NAME                                           'add_action'
         48        SEND_VAL_EX                                                  'template_redirect'
         49        SEND_VAL_EX                                                  'cnmg_mlm_handle_registration'
         50        DO_FCALL                                          0          
         51      > RETURN                                                       1

Function cnmg_mlm_activate:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/4I4Gt
function name:  cnmg_mlm_activate
number of ops:  16
compiled vars:  none
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   22     0  E >   INIT_FCALL_BY_NAME                                           'add_role'
          1        SEND_VAL_EX                                                  'district_aggregator'
          2        SEND_VAL_EX                                                  'District+Aggregator'
          3        SEND_VAL_EX                                                  <array>
          4        DO_FCALL                                          0          
   23     5        INIT_FCALL_BY_NAME                                           'add_role'
          6        SEND_VAL_EX                                                  'zonal_agent'
          7        SEND_VAL_EX                                                  'Zonal+Agent'
          8        SEND_VAL_EX                                                  <array>
          9        DO_FCALL                                          0          
   24    10        INIT_FCALL_BY_NAME                                           'add_role'
         11        SEND_VAL_EX                                                  'community_agent'
         12        SEND_VAL_EX                                                  'Community+Agent'
         13        SEND_VAL_EX                                                  <array>
         14        DO_FCALL                                          0          
   25    15      > RETURN                                                       null

End of function cnmg_mlm_activate

Function cnmg_mlm_user_profile_fields:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/4I4Gt
function name:  cnmg_mlm_user_profile_fields
number of ops:  75
compiled vars:  !0 = $user
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   29     0  E >   RECV                                                 !0      
   31     1        ECHO                                                         '++++%3Ch3%3ECNMG+MLM+Hierarchy+Info%3C%2Fh3%3E%0A++++%3Ctable+class%3D%22form-table%22%3E%0A++++++++%3Ctr%3E%0A++++++++++++%3Cth%3E%3Clabel%3ESponsor+ID%3C%2Flabel%3E%3C%2Fth%3E%0A++++++++++++%3Ctd%3E%3Cinput+type%3D%22text%22+name%3D%22sponsor_id%22+value%3D%22'
   35     2        INIT_FCALL_BY_NAME                                           'esc_attr'
          3        INIT_FCALL_BY_NAME                                           'get_user_meta'
          4        CHECK_FUNC_ARG                                               
          5        FETCH_OBJ_FUNC_ARG                                   $1      !0, 'ID'
          6        SEND_FUNC_ARG                                                $1
          7        SEND_VAL_EX                                                  'sponsor_id'
          8        SEND_VAL_EX                                                  <true>
          9        DO_FCALL                                          0  $2      
         10        SEND_VAR_NO_REF_EX                                           $2
         11        DO_FCALL                                          0  $3      
         12        ECHO                                                         $3
         13        ECHO                                                         '%22+class%3D%22regular-text%22+%2F%3E%3C%2Ftd%3E%0A++++++++%3C%2Ftr%3E%0A++++++++%3Ctr%3E%0A++++++++++++%3Cth%3E%3Clabel%3EAgent+Type%3C%2Flabel%3E%3C%2Fth%3E%0A++++++++++++%3Ctd%3E%0A++++++++++++++++%3Cselect+name%3D%22agent_type%22%3E%0A++++++++++++++++++++%3Coption+value%3D%22district_aggregator%22+'
   41    14        INIT_FCALL_BY_NAME                                           'selected'
         15        INIT_FCALL_BY_NAME                                           'get_user_meta'
         16        CHECK_FUNC_ARG                                               
         17        FETCH_OBJ_FUNC_ARG                                   $4      !0, 'ID'
         18        SEND_FUNC_ARG                                                $4
         19        SEND_VAL_EX                                                  'agent_type'
         20        SEND_VAL_EX                                                  <true>
         21        DO_FCALL                                          0  $5      
         22        SEND_VAR_NO_REF_EX                                           $5
         23        SEND_VAL_EX                                                  'district_aggregator'
         24        DO_FCALL                                          0          
         25        ECHO                                                         '%3EDistrict+Aggregator%3C%2Foption%3E%0A++++++++++++++++++++%3Coption+value%3D%22zonal_agent%22+'
   42    26        INIT_FCALL_BY_NAME                                           'selected'
         27        INIT_FCALL_BY_NAME                                           'get_user_meta'
         28        CHECK_FUNC_ARG                                               
         29        FETCH_OBJ_FUNC_ARG                                   $7      !0, 'ID'
         30        SEND_FUNC_ARG                                                $7
         31        SEND_VAL_EX                                                  'agent_type'
         32        SEND_VAL_EX                                                  <true>
         33        DO_FCALL                                          0  $8      
         34        SEND_VAR_NO_REF_EX                                           $8
         35        SEND_VAL_EX                                                  'zonal_agent'
         36        DO_FCALL                                          0          
         37        ECHO                                                         '%3EZonal+Agent%3C%2Foption%3E%0A++++++++++++++++++++%3Coption+value%3D%22community_agent%22+'
   43    38        INIT_FCALL_BY_NAME                                           'selected'
         39        INIT_FCALL_BY_NAME                                           'get_user_meta'
         40        CHECK_FUNC_ARG                                               
         41        FETCH_OBJ_FUNC_ARG                                   $10     !0, 'ID'
         42        SEND_FUNC_ARG                                                $10
         43        SEND_VAL_EX                                                  'agent_type'
         44        SEND_VAL_EX                                                  <true>
         45        DO_FCALL                                          0  $11     
         46        SEND_VAR_NO_REF_EX                                           $11
         47        SEND_VAL_EX                                                  'community_agent'
         48        DO_FCALL                                          0          
         49        ECHO                                                         '%3ECommunity+Agent%3C%2Foption%3E%0A++++++++++++++++%3C%2Fselect%3E%0A++++++++++++%3C%2Ftd%3E%0A++++++++%3C%2Ftr%3E%0A++++++++%3Ctr%3E%0A++++++++++++%3Cth%3E%3Clabel%3EDistrict%3C%2Flabel%3E%3C%2Fth%3E%0A++++++++++++%3Ctd%3E%3Cinput+type%3D%22text%22+name%3D%22district%22+value%3D%22'
   49    50        INIT_FCALL_BY_NAME                                           'esc_attr'
         51        INIT_FCALL_BY_NAME                                           'get_user_meta'
         52        CHECK_FUNC_ARG                                               
         53        FETCH_OBJ_FUNC_ARG                                   $13     !0, 'ID'
         54        SEND_FUNC_ARG                                                $13
         55        SEND_VAL_EX                                                  'district'
         56        SEND_VAL_EX                                                  <true>
         57        DO_FCALL                                          0  $14     
         58        SEND_VAR_NO_REF_EX                                           $14
         59        DO_FCALL                                          0  $15     
         60        ECHO                                                         $15
         61        ECHO                                                         '%22+class%3D%22regular-text%22+%2F%3E%3C%2Ftd%3E%0A++++++++%3C%2Ftr%3E%0A++++++++%3Ctr%3E%0A++++++++++++%3Cth%3E%3Clabel%3EZone%3C%2Flabel%3E%3C%2Fth%3E%0A++++++++++++%3Ctd%3E%3Cinput+type%3D%22text%22+name%3D%22zone%22+value%3D%22'
   53    62        INIT_FCALL_BY_NAME                                           'esc_attr'
         63        INIT_FCALL_BY_NAME                                           'get_user_meta'
         64        CHECK_FUNC_ARG                                               
         65        FETCH_OBJ_FUNC_ARG                                   $16     !0, 'ID'
         66        SEND_FUNC_ARG                                                $16
         67        SEND_VAL_EX                                                  'zone'
         68        SEND_VAL_EX                                                  <true>
         69        DO_FCALL                                          0  $17     
         70        SEND_VAR_NO_REF_EX                                           $17
         71        DO_FCALL                                          0  $18     
         72        ECHO                                                         $18
         73        ECHO                                                         '%22+class%3D%22regular-text%22+%2F%3E%3C%2Ftd%3E%0A++++++++%3C%2Ftr%3E%0A++++%3C%2Ftable%3E%0A++++'
   57    74      > RETURN                                                       null

End of function cnmg_mlm_user_profile_fields

Function cnmg_mlm_save_user_profile:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 7, Position 2 = 8
Branch analysis from position: 7
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 8
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/4I4Gt
function name:  cnmg_mlm_save_user_profile
number of ops:  57
compiled vars:  !0 = $user_id
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   61     0  E >   RECV                                                 !0      
   62     1        INIT_FCALL_BY_NAME                                           'current_user_can'
          2        SEND_VAL_EX                                                  'edit_user'
          3        SEND_VAR_EX                                                  !0
          4        DO_FCALL                                          0  $1      
          5        BOOL_NOT                                             ~2      $1
          6      > JMPZ                                                         ~2, ->8
          7    > > RETURN                                                       null
   63     8    >   INIT_FCALL_BY_NAME                                           'update_user_meta'
          9        SEND_VAR_EX                                                  !0
         10        SEND_VAL_EX                                                  'sponsor_id'
         11        INIT_FCALL_BY_NAME                                           'sanitize_text_field'
         12        FETCH_IS                                             ~3      '_POST'
         13        FETCH_DIM_IS                                         ~4      ~3, 'sponsor_id'
         14        COALESCE                                             ~5      ~4
         15        QM_ASSIGN                                            ~5      ''
         16        SEND_VAL_EX                                                  ~5
         17        DO_FCALL                                          0  $6      
         18        SEND_VAR_NO_REF_EX                                           $6
         19        DO_FCALL                                          0          
   64    20        INIT_FCALL_BY_NAME                                           'update_user_meta'
         21        SEND_VAR_EX                                                  !0
         22        SEND_VAL_EX                                                  'agent_type'
         23        INIT_FCALL_BY_NAME                                           'sanitize_text_field'
         24        FETCH_IS                                             ~8      '_POST'
         25        FETCH_DIM_IS                                         ~9      ~8, 'agent_type'
         26        COALESCE                                             ~10     ~9
         27        QM_ASSIGN                                            ~10     ''
         28        SEND_VAL_EX                                                  ~10
         29        DO_FCALL                                          0  $11     
         30        SEND_VAR_NO_REF_EX                                           $11
         31        DO_FCALL                                          0          
   65    32        INIT_FCALL_BY_NAME                                           'update_user_meta'
         33        SEND_VAR_EX                                                  !0
         34        SEND_VAL_EX                                                  'district'
         35        INIT_FCALL_BY_NAME                                           'sanitize_text_field'
         36        FETCH_IS                                             ~13     '_POST'
         37        FETCH_DIM_IS                                         ~14     ~13, 'district'
         38        COALESCE                                             ~15     ~14
         39        QM_ASSIGN                                            ~15     ''
         40        SEND_VAL_EX                                                  ~15
         41        DO_FCALL                                          0  $16     
         42        SEND_VAR_NO_REF_EX                                           $16
         43        DO_FCALL                                          0          
   66    44        INIT_FCALL_BY_NAME                                           'update_user_meta'
         45        SEND_VAR_EX                                                  !0
         46        SEND_VAL_EX                                                  'zone'
         47        INIT_FCALL_BY_NAME                                           'sanitize_text_field'
         48        FETCH_IS                                             ~18     '_POST'
         49        FETCH_DIM_IS                                         ~19     ~18, 'zone'
         50        COALESCE                                             ~20     ~19
         51        QM_ASSIGN                                            ~20     ''
         52        SEND_VAL_EX                                                  ~20
         53        DO_FCALL                                          0  $21     
         54        SEND_VAR_NO_REF_EX                                           $21
         55        DO_FCALL                                          0          
   67    56      > RETURN                                                       null

End of function cnmg_mlm_save_user_profile

Function cnmg_mlm_registration_form:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/4I4Gt
function name:  cnmg_mlm_registration_form
number of ops:  12
compiled vars:  none
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   73     0  E >   INIT_FCALL                                                   'ob_start'
          1        DO_ICALL                                                     
   74     2        ECHO                                                         '++++%3Cform+method%3D%22post%22+style%3D%22max-width%3A600px%3B+margin%3A30px+auto%3B+padding%3A20px%3B+border%3A1px+solid+%23ddd%3B%22%3E%0A++++++++'
   75     3        INIT_FCALL_BY_NAME                                           'wp_nonce_field'
          4        SEND_VAL_EX                                                  'cnmg_register'
          5        SEND_VAL_EX                                                  'cnmg_nonce'
          6        DO_FCALL                                          0          
   76     7        ECHO                                                         '++++++++%3Cp%3E%3Clabel%3EUsername%3Cbr%3E%3Cinput+type%3D%22text%22+name%3D%22username%22+required+style%3D%22width%3A100%25%3B%22%3E%3C%2Flabel%3E%3C%2Fp%3E%0A++++++++%3Cp%3E%3Clabel%3EEmail%3Cbr%3E%3Cinput+type%3D%22email%22+name%3D%22email%22+required+style%3D%22width%3A100%25%3B%22%3E%3C%2Flabel%3E%3C%2Fp%3E%0A++++++++%3Cp%3E%3Clabel%3EPassword%3Cbr%3E%3Cinput+type%3D%22password%22+name%3D%22password%22+required+style%3D%22width%3A100%25%3B%22%3E%3C%2Flabel%3E%3C%2Fp%3E%0A++++++++%3Cp%3E%3Clabel%3ESponsor+ID%3Cbr%3E%3Cinput+type%3D%22text%22+name%3D%22sponsor_id%22+required+style%3D%22width%3A100%25%3B%22%3E%3C%2Flabel%3E%3C%2Fp%3E%0A++++++++%3Cp%3E%3Clabel%3EAgent+Type%3Cbr%3E%0A++++++++++++%3Cselect+name%3D%22agent_type%22+required+style%3D%22width%3A100%25%3B%22%3E%0A++++++++++++++++%3Coption+value%3D%22community_agent%22%3ECommunity+Agent%3C%2Foption%3E%0A++++++++++++++++%3Coption+value%3D%22zonal_agent%22%3EZonal+Agent%3C%2Foption%3E%0A++++++++++++++++%3Coption+value%3D%22district_aggregator%22%3EDistrict+Aggregator%3C%2Foption%3E%0A++++++++++++%3C%2Fselect%3E%0A++++++++%3C%2Flabel%3E%3C%2Fp%3E%0A++++++++%3Cp%3E%3Clabel%3EDistrict%3Cbr%3E%3Cinput+type%3D%22text%22+name%3D%22district%22+required+style%3D%22width%3A100%25%3B%22%3E%3C%2Flabel%3E%3C%2Fp%3E%0A++++++++%3Cp%3E%3Clabel%3EZone+%28optional%29%3Cbr%3E%3Cinput+type%3D%22text%22+name%3D%22zone%22+style%3D%22width%3A100%25%3B%22%3E%3C%2Flabel%3E%3C%2Fp%3E%0A++++++++%3Cinput+type%3D%22submit%22+name%3D%22cnmg_register%22+value%3D%22Register+as+Agent%22+style%3D%22padding%3A10px+20px%3B%22%3E%0A++++%3C%2Fform%3E%0A++++'
   92     8        INIT_FCALL                                                   'ob_get_clean'
          9        DO_ICALL                                             $2      
         10      > RETURN                                                       $2
   93    11*     > RETURN                                                       null

End of function cnmg_mlm_registration_form

Function cnmg_mlm_handle_registration:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 47) Position 1 = 4, Position 2 = 13
Branch analysis from position: 4
2 jumps found. (Code = 43) Position 1 = 14, Position 2 = 15
Branch analysis from position: 14
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 15
2 jumps found. (Code = 47) Position 1 = 64, Position 2 = 68
Branch analysis from position: 64
2 jumps found. (Code = 43) Position 1 = 69, Position 2 = 71
Branch analysis from position: 69
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 71
2 jumps found. (Code = 43) Position 1 = 81, Position 2 = 87
Branch analysis from position: 81
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 87
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 68
Branch analysis from position: 13
filename:       /in/4I4Gt
function name:  cnmg_mlm_handle_registration
number of ops:  118
compiled vars:  !0 = $username, !1 = $email, !2 = $password, !3 = $sponsor_id, !4 = $agent_type, !5 = $district, !6 = $zone, !7 = $user_id, !8 = $user
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   98     0  E >   FETCH_IS                                             ~9      '_POST'
          1        ISSET_ISEMPTY_DIM_OBJ                             0  ~10     ~9, 'cnmg_register'
          2        BOOL_NOT                                             ~11     ~10
          3      > JMPNZ_EX                                             ~11     ~11, ->13
          4    >   INIT_FCALL_BY_NAME                                           'wp_verify_nonce'
          5        CHECK_FUNC_ARG                                               
          6        FETCH_FUNC_ARG                   global              $12     '_POST'
          7        FETCH_DIM_FUNC_ARG                                   $13     $12, 'cnmg_nonce'
          8        SEND_FUNC_ARG                                                $13
          9        SEND_VAL_EX                                                  'cnmg_register'
         10        DO_FCALL                                          0  $14     
         11        BOOL_NOT                                             ~15     $14
         12        BOOL                                                 ~11     ~15
         13    > > JMPZ                                                         ~11, ->15
   99    14    > > RETURN                                                       null
  102    15    >   INIT_FCALL_BY_NAME                                           'sanitize_user'
         16        CHECK_FUNC_ARG                                               
         17        FETCH_FUNC_ARG                   global              $16     '_POST'
         18        FETCH_DIM_FUNC_ARG                                   $17     $16, 'username'
         19        SEND_FUNC_ARG                                                $17
         20        DO_FCALL                                          0  $18     
         21        ASSIGN                                                       !0, $18
  103    22        INIT_FCALL_BY_NAME                                           'sanitize_email'
         23        CHECK_FUNC_ARG                                               
         24        FETCH_FUNC_ARG                   global              $20     '_POST'
         25        FETCH_DIM_FUNC_ARG                                   $21     $20, 'email'
         26        SEND_FUNC_ARG                                                $21
         27        DO_FCALL                                          0  $22     
         28        ASSIGN                                                       !1, $22
  104    29        FETCH_R                          global              ~24     '_POST'
         30        FETCH_DIM_R                                          ~25     ~24, 'password'
         31        ASSIGN                                                       !2, ~25
  105    32        INIT_FCALL_BY_NAME                                           'sanitize_text_field'
         33        CHECK_FUNC_ARG                                               
         34        FETCH_FUNC_ARG                   global              $27     '_POST'
         35        FETCH_DIM_FUNC_ARG                                   $28     $27, 'sponsor_id'
         36        SEND_FUNC_ARG                                                $28
         37        DO_FCALL                                          0  $29     
         38        ASSIGN                                                       !3, $29
  106    39        INIT_FCALL_BY_NAME                                           'sanitize_text_field'
         40        CHECK_FUNC_ARG                                               
         41        FETCH_FUNC_ARG                   global              $31     '_POST'
         42        FETCH_DIM_FUNC_ARG                                   $32     $31, 'agent_type'
         43        SEND_FUNC_ARG                                                $32
         44        DO_FCALL                                          0  $33     
         45        ASSIGN                                                       !4, $33
  107    46        INIT_FCALL_BY_NAME                                           'sanitize_text_field'
         47        CHECK_FUNC_ARG                                               
         48        FETCH_FUNC_ARG                   global              $35     '_POST'
         49        FETCH_DIM_FUNC_ARG                                   $36     $35, 'district'
         50        SEND_FUNC_ARG                                                $36
         51        DO_FCALL                                          0  $37     
         52        ASSIGN                                                       !5, $37
  108    53        INIT_FCALL_BY_NAME                                           'sanitize_text_field'
         54        CHECK_FUNC_ARG                                               
         55        FETCH_FUNC_ARG                   global              $39     '_POST'
         56        FETCH_DIM_FUNC_ARG                                   $40     $39, 'zone'
         57        SEND_FUNC_ARG                                                $40
         58        DO_FCALL                                          0  $41     
         59        ASSIGN                                                       !6, $41
  110    60        INIT_FCALL_BY_NAME                                           'username_exists'
         61        SEND_VAR_EX                                                  !0
         62        DO_FCALL                                          0  $43     
         63      > JMPNZ_EX                                             ~44     $43, ->68
         64    >   INIT_FCALL_BY_NAME                                           'email_exists'
         65        SEND_VAR_EX                                                  !1
         66        DO_FCALL                                          0  $45     
         67        BOOL                                                 ~44     $45
         68    > > JMPZ                                                         ~44, ->71
  111    69    >   ECHO                                                         '%3Cp+style%3D%22color%3Ared%3B%22%3EUsername+or+email+already+exists.%3C%2Fp%3E'
  112    70      > RETURN                                                       null
  115    71    >   INIT_FCALL_BY_NAME                                           'wp_create_user'
         72        SEND_VAR_EX                                                  !0
         73        SEND_VAR_EX                                                  !2
         74        SEND_VAR_EX                                                  !1
         75        DO_FCALL                                          0  $46     
         76        ASSIGN                                                       !7, $46
  116    77        INIT_FCALL_BY_NAME                                           'is_wp_error'
         78        SEND_VAR_EX                   

Generated using Vulcan Logic Dumper, using php 8.5.0


preferences:
158.06 ms | 1421 KiB | 17 Q