Plugin Directory

Changeset 2792490


Ignore:
Timestamp:
09/30/2022 01:26:23 PM (3 years ago)
Author:
crowdaa
Message:

Added version 1.6.0

Location:
crowdaa-sync
Files:
8 edited
74 copied

Legend:

Unmodified
Added
Removed
  • crowdaa-sync/tags/1.6.0/README.txt

    r2778685 r2792490  
    66Requires PHP: 7.3
    77Tested up to: 5.9
    8 Stable tag: 1.5.0
     8Stable tag: 1.6.0
    99License: GPLv2 or later
    1010License URI: http://www.gnu.org/licenses/gpl-2.0.html
  • crowdaa-sync/tags/1.6.0/admin/class-crowdaa-sync-add-info-api.php

    r2776976 r2792490  
    150150        if (is_object($category->picture[0]) && isset($category->picture[0]->pictureUrl)) {
    151151          $data['picture'] = $category->picture[0]->_id;
     152        } else if (is_string($category->picture)) {
     153          $data['picture'] = $category->picture;
    152154        } else if (is_string($category->picture[0])) {
    153155          $data['picture'] = $category->picture[0];
  • crowdaa-sync/tags/1.6.0/admin/class-crowdaa-sync-ext-hooks.php

    r2778685 r2792490  
    3131  public function jwt_auth_token_before_dispatch($data, $user) {
    3232    if (Crowdaa_Sync_Utils::is_crowdaa_api_request()) {
     33      $data['user_id'] = $user->data->ID;
    3334      if (function_exists('pkg_autologin_generate_code') && defined('PKG_AUTOLOGIN_STAGED_CODE_USER_META_KEY')) {
    3435        $code = get_user_meta($user->data->ID, PKG_AUTOLOGIN_USER_META_KEY, True);
     
    4142
    4243      if (Crowdaa_Sync_Permissions::plugin_get()) {
    43         $user_memberships = Crowdaa_Sync_Permissions::get_user_perms($user->data->ID);
     44        $user_memberships_ids = Crowdaa_Sync_Permissions::get_user_perms($user->data->ID);
    4445
    45         if (count($user_memberships) > 0) {
     46        if (count($user_memberships_ids) > 0) {
    4647          $sync_db = Crowdaa_Sync_Permissions::sync_db();
    47           $wp_ids = Crowdaa_Sync_Utils::object_array_extract_field('id', $user_memberships);
    48           $synced = $sync_db->get_entry_with_wp_id($wp_ids, 'api_id');
     48          $synced = $sync_db->get_entries_with_wp_ids($user_memberships_ids, 'api_id');
    4949          $api_ids = Crowdaa_Sync_Utils::object_array_extract_field('api_id', $synced);
    5050          $data['user_badges'] = $api_ids;
  • crowdaa-sync/tags/1.6.0/admin/class-crowdaa-sync-rest-api.php

    r2778685 r2792490  
    4949        'permission_callback' => array($this, 'permission_allow_auth_api'),
    5050      ));
    51     }
     51      register_rest_route($this->namespace, 'sync/badges/users', array(
     52        'methods' => 'POST',
     53        'callback' => array($this, 'sync_badges'),
     54        'permission_callback' => array($this, 'permission_allow_all_api'),
     55      ));
     56    }
     57  }
     58
     59  public function sync_badges($request) {
     60    $response = array();
     61    $parameters = $request->get_json_params();
     62    $userId = $parameters['user_id'];
     63    $badges = $parameters['badges'];
     64
     65    $response = ['updated' => false];
     66
     67    $user = get_user_by('id', $userId);
     68    if (!$user) {
     69      Crowdaa_Sync_Logs::log('Crowdaa_Sync_Rest_Api::sync_badges() : User not found', $userId);
     70      return new WP_REST_Response($response, 200);
     71    }
     72
     73    if (!Crowdaa_Sync_Permissions::plugin_get() || !is_array($badges)) {
     74      return new WP_REST_Response($response, 200);
     75    }
     76
     77    Crowdaa_Sync_Permissions::set_user_perms($user->data->ID, $badges);
     78
     79    $response['updated'] = true;
     80    return new WP_REST_Response($response, 200);
    5281  }
    5382
     
    164193
    165194    $user = wp_get_current_user();
     195
     196    if (Crowdaa_Sync_Permissions::plugin_get()) {
     197      $user_memberships_ids = Crowdaa_Sync_Permissions::get_user_perms($user->data->ID);
     198
     199      if (count($user_memberships_ids) > 0) {
     200        $sync_db = Crowdaa_Sync_Permissions::sync_db();
     201        $synced = $sync_db->get_entries_with_wp_ids($user_memberships_ids, 'api_id');
     202        $api_ids = Crowdaa_Sync_Utils::object_array_extract_field('api_id', $synced);
     203        $response['user_badges'] = $api_ids;
     204      }
     205    }
     206
     207    $response['user_id'] = $user->data->ID;
     208
    166209    $response = apply_filters('crowdaa_sync_api_session_checks', $response, $user);
    167210
  • crowdaa-sync/tags/1.6.0/crowdaa-sync.php

    r2778685 r2792490  
    1414 * Plugin URI:       
    1515 * Description:       Plugin for synchronizing WordPress site and Crowdaa CMS
    16  * Version:           1.5.0
     16 * Version:           1.6.0
    1717 * Requires at least: 5.5
    1818 * Requires PHP:      7.2
     
    3434 * Uses SemVer - https://semver.org
    3535 */
    36 define('CROWDAA_SYNC_VERSION', '1.5.0');
     36define('CROWDAA_SYNC_VERSION', '1.6.0');
    3737define('CROWDAA_SYNC_PLUGIN_DIR', __DIR__);
    3838define('CROWDAA_SYNC_PLUGIN_NAME', 'crowdaa-sync');
  • crowdaa-sync/tags/1.6.0/includes/class-crowdaa-sync-permissions.php

    r2776976 r2792490  
    566566    ], 'id');
    567567
    568     return ($user_memberships);
    569   }
    570 
    571   public static function get_user_perms__swpm($userId) {
     568    $memberships_ids = Crowdaa_Sync_Utils::object_array_extract_field('id', $user_memberships);
     569
     570    return ($memberships_ids);
     571  }
     572
     573  private static function get_user_perms__swpm($userId) {
    572574    $user = get_user_by('id', $userId);
    573575    $memberships = Crowdaa_Sync_Utils::quick_select(self::swpm_members_table(), [
     
    576578    ]);
    577579
    578     $ret = Crowdaa_Sync_Utils::object_array_extract_field('membership_level', $memberships);
    579 
    580     return ($ret);
     580    $memberships_ids = Crowdaa_Sync_Utils::object_array_extract_field('membership_level', $memberships);
     581
     582    return ($memberships_ids);
     583  }
     584
     585  public static function set_user_perms($userId, $badges) {
     586    $plugin = self::plugin_get();
     587    if (!$plugin) throw new Crowdaa_Sync_Error('Missing plugin for Crowdaa_Sync_Permissions::set_user_perms()');
     588
     589    $alias = self::$all_plugins[$plugin]['alias'];
     590    $function = 'set_user_perms__'.$alias;
     591
     592    return(self::$function($userId));
     593  }
     594
     595  private static function set_user_perms__pmpro($userId, $badges) {
     596    global $wpdb;
     597    $sync_db = self::sync_db();
     598    $syncedIds = $sync_db->get_entries_with_api_ids($badges, 'wp_id');
     599    $syncedIds = Crowdaa_Sync_Utils::object_array_extract_field('wp_id', $syncedIds);
     600
     601    $memberships = Crowdaa_Sync_Utils::quick_select($wpdb->pmpro_memberships_users, [
     602      'user_id' => $userId,
     603      'status' => 'active',
     604    ], 'id');
     605    $membershipsIds = Crowdaa_Sync_Utils::object_array_extract_field('membership_id', $memberships);
     606
     607    $toAdd = [];
     608    $toDelete = [];
     609
     610    foreach ($syncedIds as $id) {
     611      if (array_search($id, $membershipsIds) === false) {
     612        $toAdd[] = $id;
     613      }
     614    }
     615
     616    foreach ($membershipsIds as $id) {
     617      if (array_search($id, $syncedIds) === false) {
     618        $toDelete[] = $syncedId;
     619      }
     620    }
     621
     622    $user_registered = explode(' ', $user->data->user_registered);
     623    foreach ($toAdd as $id) {
     624      Crowdaa_Sync_Utils::quick_insert($wpdb->pmpro_memberships_users, [
     625        'user_id' => $userId,
     626        'status' => 'active',
     627        'membership_id' => $id,
     628        'code_id' => 0,
     629        'initial_payment' => 0.0,
     630        'billing_amount' => 0.0,
     631        'cycle_number' => 0,
     632        'billing_limit' => 0,
     633        'trial_amount' => 0.0,
     634        'trial_limit' => 0,
     635        'status' => 'active',
     636        'startdate' => $user_registered[0],
     637      ]);
     638    }
     639
     640    foreach ($toDelete as $id) {
     641      Crowdaa_Sync_Utils::quick_delete($wpdb->pmpro_memberships_users, [
     642        'user_id'       => $userId,
     643        'status'        => 'active',
     644        'membership_id' => $id,
     645      ]);
     646    }
     647  }
     648
     649  private static function set_user_perms__swpm($userId, $badges) {
     650    $user = get_user_by('id', $userId);
     651    $sync_db = self::sync_db();
     652
     653    $memberships = Crowdaa_Sync_Utils::quick_select(self::swpm_members_table(), [
     654      'username'      => $user->data->user_login,
     655      'account_state' => 'active',
     656    ]);
     657
     658    if (count($badges) > 0 && count($memberships) > 0) {
     659      $syncedIds = $sync_db->get_entries_with_api_ids($badges, 'wp_id');
     660      if ($count($syncedIds) > 0) {
     661        $firstSyncedId = $syncedIds[0]->wp_id;
     662        Crowdaa_Sync_Utils::quick_update(self::swpm_members_table(), [
     663          'ID' => $memberships->ID,
     664        ], [
     665          'membership_level' => $firstSyncedId,
     666        ]);
     667      }
     668    } else if (count($badges) == 0 && count($memberships) > 0) {
     669      Crowdaa_Sync_Utils::quick_delete(self::swpm_members_table(), [
     670        'ID' => $memberships->ID,
     671      ]);
     672    } else if (count($badges) > 0 && count($memberships) == 0) {
     673      $user_registered = explode(' ', $user->data->user_registered);
     674
     675      Crowdaa_Sync_Utils::quick_insert(self::swpm_members_table(), [
     676        "member_id"              => 2,
     677        "user_name"              => $user->user_login,
     678        "first_name"             => '',
     679        "last_name"              => '',
     680        "password"               => $user->user_pass,
     681        "member_since"           => $user_registered[0],
     682        "membership_level"       => 2,
     683        "more_membership_levels" => NULL,
     684        "account_state"          => 'active',
     685        "last_accessed_from_ip"  => '',
     686        "email"                  => $user->data->user_email,
     687        "phone"                  => '',
     688        "address_street"         => '',
     689        "address_city"           => '',
     690        "address_state"          => '',
     691        "address_zipcode"        => '',
     692        "country"                => '',
     693        "gender"                 => 'not specified',
     694        "subscription_starts"    => $user_registered[0],
     695        "txn_id"                 => '',
     696        "subscr_id"              => '',
     697        "company_name"           => '',
     698        "flags"                  => 0,
     699        "profile_image"          => '',
     700      ]);
     701    }
     702
     703    return ($memberships_ids);
    581704  }
    582705
  • crowdaa-sync/tags/1.6.0/includes/class-crowdaa-sync-syncdb.php

    r2744975 r2792490  
    161161    if (is_array($whereData)) {
    162162      $whereINQuery = implode(', ', array_fill(0, count($whereData), '%s'));
    163       $whereStr = $whereField.' in ['.$whereINQuery.']';
     163      $whereStr = $whereField.' in ('.$whereINQuery.')';
    164164      $whereArg = $whereData;
    165165    } else {
     
    204204
    205205  /**
     206   * Get entries with the specified WP IDs (as an araray).
     207   */
     208  public function get_entries_with_wp_ids($wp_ids, $fields = null) {
     209    global $wpdb;
     210
     211    list($whereStr, $whereArg) = self::prepare_wherein($wp_ids, 'wp_id');
     212    $fields = self::prepare_fields($fields);
     213
     214    $result = $wpdb->get_results($wpdb->prepare("SELECT $fields FROM `$this->tableName` WHERE $whereStr", ...$whereArg), OBJECT_K);
     215
     216    self::unserialize_data($result);
     217
     218    return ($result);
     219  }
     220
     221  /**
     222   * Get entries with the specified API IDs (as an araray).
     223   */
     224  public function get_entries_with_api_ids($api_ids, $fields = null) {
     225    global $wpdb;
     226
     227    list($whereStr, $whereArg) = self::prepare_wherein($api_ids, 'api_id');
     228    $fields = self::prepare_fields($fields);
     229
     230    $result = $wpdb->get_results($wpdb->prepare("SELECT $fields FROM `$this->tableName` WHERE $whereStr", ...$whereArg), OBJECT_K);
     231
     232    self::unserialize_data($result);
     233
     234    return ($result);
     235  }
     236
     237  /**
    206238   * Get an entry with the specified internal ID.
    207239   */
  • crowdaa-sync/tags/1.6.0/includes/class-crowdaa-sync-utils.php

    r2778568 r2792490  
    156156   */
    157157  public static function object_array_extract_field($field, $array) {
    158     $ret = array_map(function($item) {
    159       return ($item->$field);
    160     }, $array);
    161 
     158    $ret = [];
     159    foreach ($array as $item) {
     160      $ret[] = $item->$field;
     161    }
    162162    return ($ret);
    163163  }
  • crowdaa-sync/trunk/README.txt

    r2778685 r2792490  
    66Requires PHP: 7.3
    77Tested up to: 5.9
    8 Stable tag: 1.5.0
     8Stable tag: 1.6.0
    99License: GPLv2 or later
    1010License URI: http://www.gnu.org/licenses/gpl-2.0.html
  • crowdaa-sync/trunk/admin/class-crowdaa-sync-add-info-api.php

    r2776976 r2792490  
    150150        if (is_object($category->picture[0]) && isset($category->picture[0]->pictureUrl)) {
    151151          $data['picture'] = $category->picture[0]->_id;
     152        } else if (is_string($category->picture)) {
     153          $data['picture'] = $category->picture;
    152154        } else if (is_string($category->picture[0])) {
    153155          $data['picture'] = $category->picture[0];
  • crowdaa-sync/trunk/admin/class-crowdaa-sync-ext-hooks.php

    r2778685 r2792490  
    3131  public function jwt_auth_token_before_dispatch($data, $user) {
    3232    if (Crowdaa_Sync_Utils::is_crowdaa_api_request()) {
     33      $data['user_id'] = $user->data->ID;
    3334      if (function_exists('pkg_autologin_generate_code') && defined('PKG_AUTOLOGIN_STAGED_CODE_USER_META_KEY')) {
    3435        $code = get_user_meta($user->data->ID, PKG_AUTOLOGIN_USER_META_KEY, True);
     
    4142
    4243      if (Crowdaa_Sync_Permissions::plugin_get()) {
    43         $user_memberships = Crowdaa_Sync_Permissions::get_user_perms($user->data->ID);
     44        $user_memberships_ids = Crowdaa_Sync_Permissions::get_user_perms($user->data->ID);
    4445
    45         if (count($user_memberships) > 0) {
     46        if (count($user_memberships_ids) > 0) {
    4647          $sync_db = Crowdaa_Sync_Permissions::sync_db();
    47           $wp_ids = Crowdaa_Sync_Utils::object_array_extract_field('id', $user_memberships);
    48           $synced = $sync_db->get_entry_with_wp_id($wp_ids, 'api_id');
     48          $synced = $sync_db->get_entries_with_wp_ids($user_memberships_ids, 'api_id');
    4949          $api_ids = Crowdaa_Sync_Utils::object_array_extract_field('api_id', $synced);
    5050          $data['user_badges'] = $api_ids;
  • crowdaa-sync/trunk/admin/class-crowdaa-sync-rest-api.php

    r2778685 r2792490  
    4949        'permission_callback' => array($this, 'permission_allow_auth_api'),
    5050      ));
    51     }
     51      register_rest_route($this->namespace, 'sync/badges/users', array(
     52        'methods' => 'POST',
     53        'callback' => array($this, 'sync_badges'),
     54        'permission_callback' => array($this, 'permission_allow_all_api'),
     55      ));
     56    }
     57  }
     58
     59  public function sync_badges($request) {
     60    $response = array();
     61    $parameters = $request->get_json_params();
     62    $userId = $parameters['user_id'];
     63    $badges = $parameters['badges'];
     64
     65    $response = ['updated' => false];
     66
     67    $user = get_user_by('id', $userId);
     68    if (!$user) {
     69      Crowdaa_Sync_Logs::log('Crowdaa_Sync_Rest_Api::sync_badges() : User not found', $userId);
     70      return new WP_REST_Response($response, 200);
     71    }
     72
     73    if (!Crowdaa_Sync_Permissions::plugin_get() || !is_array($badges)) {
     74      return new WP_REST_Response($response, 200);
     75    }
     76
     77    Crowdaa_Sync_Permissions::set_user_perms($user->data->ID, $badges);
     78
     79    $response['updated'] = true;
     80    return new WP_REST_Response($response, 200);
    5281  }
    5382
     
    164193
    165194    $user = wp_get_current_user();
     195
     196    if (Crowdaa_Sync_Permissions::plugin_get()) {
     197      $user_memberships_ids = Crowdaa_Sync_Permissions::get_user_perms($user->data->ID);
     198
     199      if (count($user_memberships_ids) > 0) {
     200        $sync_db = Crowdaa_Sync_Permissions::sync_db();
     201        $synced = $sync_db->get_entries_with_wp_ids($user_memberships_ids, 'api_id');
     202        $api_ids = Crowdaa_Sync_Utils::object_array_extract_field('api_id', $synced);
     203        $response['user_badges'] = $api_ids;
     204      }
     205    }
     206
     207    $response['user_id'] = $user->data->ID;
     208
    166209    $response = apply_filters('crowdaa_sync_api_session_checks', $response, $user);
    167210
  • crowdaa-sync/trunk/crowdaa-sync.php

    r2778685 r2792490  
    1414 * Plugin URI:       
    1515 * Description:       Plugin for synchronizing WordPress site and Crowdaa CMS
    16  * Version:           1.5.0
     16 * Version:           1.6.0
    1717 * Requires at least: 5.5
    1818 * Requires PHP:      7.2
     
    3434 * Uses SemVer - https://semver.org
    3535 */
    36 define('CROWDAA_SYNC_VERSION', '1.5.0');
     36define('CROWDAA_SYNC_VERSION', '1.6.0');
    3737define('CROWDAA_SYNC_PLUGIN_DIR', __DIR__);
    3838define('CROWDAA_SYNC_PLUGIN_NAME', 'crowdaa-sync');
  • crowdaa-sync/trunk/includes/class-crowdaa-sync-permissions.php

    r2776976 r2792490  
    566566    ], 'id');
    567567
    568     return ($user_memberships);
    569   }
    570 
    571   public static function get_user_perms__swpm($userId) {
     568    $memberships_ids = Crowdaa_Sync_Utils::object_array_extract_field('id', $user_memberships);
     569
     570    return ($memberships_ids);
     571  }
     572
     573  private static function get_user_perms__swpm($userId) {
    572574    $user = get_user_by('id', $userId);
    573575    $memberships = Crowdaa_Sync_Utils::quick_select(self::swpm_members_table(), [
     
    576578    ]);
    577579
    578     $ret = Crowdaa_Sync_Utils::object_array_extract_field('membership_level', $memberships);
    579 
    580     return ($ret);
     580    $memberships_ids = Crowdaa_Sync_Utils::object_array_extract_field('membership_level', $memberships);
     581
     582    return ($memberships_ids);
     583  }
     584
     585  public static function set_user_perms($userId, $badges) {
     586    $plugin = self::plugin_get();
     587    if (!$plugin) throw new Crowdaa_Sync_Error('Missing plugin for Crowdaa_Sync_Permissions::set_user_perms()');
     588
     589    $alias = self::$all_plugins[$plugin]['alias'];
     590    $function = 'set_user_perms__'.$alias;
     591
     592    return(self::$function($userId));
     593  }
     594
     595  private static function set_user_perms__pmpro($userId, $badges) {
     596    global $wpdb;
     597    $sync_db = self::sync_db();
     598    $syncedIds = $sync_db->get_entries_with_api_ids($badges, 'wp_id');
     599    $syncedIds = Crowdaa_Sync_Utils::object_array_extract_field('wp_id', $syncedIds);
     600
     601    $memberships = Crowdaa_Sync_Utils::quick_select($wpdb->pmpro_memberships_users, [
     602      'user_id' => $userId,
     603      'status' => 'active',
     604    ], 'id');
     605    $membershipsIds = Crowdaa_Sync_Utils::object_array_extract_field('membership_id', $memberships);
     606
     607    $toAdd = [];
     608    $toDelete = [];
     609
     610    foreach ($syncedIds as $id) {
     611      if (array_search($id, $membershipsIds) === false) {
     612        $toAdd[] = $id;
     613      }
     614    }
     615
     616    foreach ($membershipsIds as $id) {
     617      if (array_search($id, $syncedIds) === false) {
     618        $toDelete[] = $syncedId;
     619      }
     620    }
     621
     622    $user_registered = explode(' ', $user->data->user_registered);
     623    foreach ($toAdd as $id) {
     624      Crowdaa_Sync_Utils::quick_insert($wpdb->pmpro_memberships_users, [
     625        'user_id' => $userId,
     626        'status' => 'active',
     627        'membership_id' => $id,
     628        'code_id' => 0,
     629        'initial_payment' => 0.0,
     630        'billing_amount' => 0.0,
     631        'cycle_number' => 0,
     632        'billing_limit' => 0,
     633        'trial_amount' => 0.0,
     634        'trial_limit' => 0,
     635        'status' => 'active',
     636        'startdate' => $user_registered[0],
     637      ]);
     638    }
     639
     640    foreach ($toDelete as $id) {
     641      Crowdaa_Sync_Utils::quick_delete($wpdb->pmpro_memberships_users, [
     642        'user_id'       => $userId,
     643        'status'        => 'active',
     644        'membership_id' => $id,
     645      ]);
     646    }
     647  }
     648
     649  private static function set_user_perms__swpm($userId, $badges) {
     650    $user = get_user_by('id', $userId);
     651    $sync_db = self::sync_db();
     652
     653    $memberships = Crowdaa_Sync_Utils::quick_select(self::swpm_members_table(), [
     654      'username'      => $user->data->user_login,
     655      'account_state' => 'active',
     656    ]);
     657
     658    if (count($badges) > 0 && count($memberships) > 0) {
     659      $syncedIds = $sync_db->get_entries_with_api_ids($badges, 'wp_id');
     660      if ($count($syncedIds) > 0) {
     661        $firstSyncedId = $syncedIds[0]->wp_id;
     662        Crowdaa_Sync_Utils::quick_update(self::swpm_members_table(), [
     663          'ID' => $memberships->ID,
     664        ], [
     665          'membership_level' => $firstSyncedId,
     666        ]);
     667      }
     668    } else if (count($badges) == 0 && count($memberships) > 0) {
     669      Crowdaa_Sync_Utils::quick_delete(self::swpm_members_table(), [
     670        'ID' => $memberships->ID,
     671      ]);
     672    } else if (count($badges) > 0 && count($memberships) == 0) {
     673      $user_registered = explode(' ', $user->data->user_registered);
     674
     675      Crowdaa_Sync_Utils::quick_insert(self::swpm_members_table(), [
     676        "member_id"              => 2,
     677        "user_name"              => $user->user_login,
     678        "first_name"             => '',
     679        "last_name"              => '',
     680        "password"               => $user->user_pass,
     681        "member_since"           => $user_registered[0],
     682        "membership_level"       => 2,
     683        "more_membership_levels" => NULL,
     684        "account_state"          => 'active',
     685        "last_accessed_from_ip"  => '',
     686        "email"                  => $user->data->user_email,
     687        "phone"                  => '',
     688        "address_street"         => '',
     689        "address_city"           => '',
     690        "address_state"          => '',
     691        "address_zipcode"        => '',
     692        "country"                => '',
     693        "gender"                 => 'not specified',
     694        "subscription_starts"    => $user_registered[0],
     695        "txn_id"                 => '',
     696        "subscr_id"              => '',
     697        "company_name"           => '',
     698        "flags"                  => 0,
     699        "profile_image"          => '',
     700      ]);
     701    }
     702
     703    return ($memberships_ids);
    581704  }
    582705
  • crowdaa-sync/trunk/includes/class-crowdaa-sync-syncdb.php

    r2744975 r2792490  
    161161    if (is_array($whereData)) {
    162162      $whereINQuery = implode(', ', array_fill(0, count($whereData), '%s'));
    163       $whereStr = $whereField.' in ['.$whereINQuery.']';
     163      $whereStr = $whereField.' in ('.$whereINQuery.')';
    164164      $whereArg = $whereData;
    165165    } else {
     
    204204
    205205  /**
     206   * Get entries with the specified WP IDs (as an araray).
     207   */
     208  public function get_entries_with_wp_ids($wp_ids, $fields = null) {
     209    global $wpdb;
     210
     211    list($whereStr, $whereArg) = self::prepare_wherein($wp_ids, 'wp_id');
     212    $fields = self::prepare_fields($fields);
     213
     214    $result = $wpdb->get_results($wpdb->prepare("SELECT $fields FROM `$this->tableName` WHERE $whereStr", ...$whereArg), OBJECT_K);
     215
     216    self::unserialize_data($result);
     217
     218    return ($result);
     219  }
     220
     221  /**
     222   * Get entries with the specified API IDs (as an araray).
     223   */
     224  public function get_entries_with_api_ids($api_ids, $fields = null) {
     225    global $wpdb;
     226
     227    list($whereStr, $whereArg) = self::prepare_wherein($api_ids, 'api_id');
     228    $fields = self::prepare_fields($fields);
     229
     230    $result = $wpdb->get_results($wpdb->prepare("SELECT $fields FROM `$this->tableName` WHERE $whereStr", ...$whereArg), OBJECT_K);
     231
     232    self::unserialize_data($result);
     233
     234    return ($result);
     235  }
     236
     237  /**
    206238   * Get an entry with the specified internal ID.
    207239   */
  • crowdaa-sync/trunk/includes/class-crowdaa-sync-utils.php

    r2778568 r2792490  
    156156   */
    157157  public static function object_array_extract_field($field, $array) {
    158     $ret = array_map(function($item) {
    159       return ($item->$field);
    160     }, $array);
    161 
     158    $ret = [];
     159    foreach ($array as $item) {
     160      $ret[] = $item->$field;
     161    }
    162162    return ($ret);
    163163  }
Note: See TracChangeset for help on using the changeset viewer.