Example #1
0
 public function create_user(array $user_hash, $install_step_done = false)
 {
     $response = $this->check_if_b2c_user($user_hash['email']);
     if (empty($response['response']['data'])) {
         $user = array('email' => $user_hash['email'], 'display_name' => $user_hash['display_name'], 'first_name' => $user_hash['first_name'], 'last_name' => $user_hash['last_name'], 'website_name' => $user_hash['website_name'], 'password' => $user_hash['password'], 'support_url' => $user_hash['support_url'], 'callback_url' => $user_hash['callback_url'], 'url' => $user_hash['url']);
         $data = $install_step_done ? array('install_step' => 'done', 'user' => $user) : array('user' => $user);
         return $this->post('/users', $data);
     } else {
         $id = $response['response']['data']['id'];
         $data = array('password' => $user_hash['password'], 'display_name' => $user_hash['display_name'], 'account' => array('url' => $user_hash['url'], 'custom_platform_name' => null, 'install_step' => 8, 'account_platform' => array('shop_domain' => wc_yotpo_get_shop_domain(), 'platform_type_id' => 12)));
         $this->create_user_migration($id, $data);
         $this->notify_user_migration($id);
         return 'b2c';
     }
 }
Example #2
0
function wc_proccess_yotpo_register()
{
    $errors = array();
    if ($_POST['yotpo_user_email'] === '') {
        array_push($errors, 'Provide valid email address');
    }
    if (strlen($_POST['yotpo_user_password']) < 6 || strlen($_POST['yotpo_user_password']) > 128) {
        array_push($errors, 'Password must be at least 6 characters');
    }
    if ($_POST['yotpo_user_password'] != $_POST['yotpo_user_confirm_password']) {
        array_push($errors, 'Passwords are not identical');
    }
    if ($_POST['yotpo_user_name'] === '') {
        array_push($errors, 'Name is missing');
    }
    if (count($errors) == 0) {
        $yotpo_api = new Yotpo();
        $shop_url = get_bloginfo('url');
        $user = array('email' => $_POST['yotpo_user_email'], 'display_name' => $_POST['yotpo_user_name'], 'first_name' => '', 'password' => $_POST['yotpo_user_password'], 'last_name' => '', 'website_name' => $shop_url, 'support_url' => $shop_url, 'callback_url' => $shop_url, 'url' => $shop_url);
        try {
            $response = $yotpo_api->create_user($user, true);
            if (!empty($response['status']) && !empty($response['status']['code'])) {
                if ($response['status']['code'] == 200) {
                    $app_key = $response['response']['app_key'];
                    $secret = $response['response']['secret'];
                    $yotpo_api->set_app_key($app_key);
                    $yotpo_api->set_secret($secret);
                    $shop_domain = parse_url($shop_url, PHP_URL_HOST);
                    $account_platform_response = $yotpo_api->create_account_platform(array('shop_domain' => wc_yotpo_get_shop_domain(), 'utoken' => $response['response']['token'], 'platform_type_id' => 12));
                    if (!empty($response['status']) && !empty($response['status']['code']) && $response['status']['code'] == 200) {
                        $current_settings = get_option('yotpo_settings', wc_yotpo_get_degault_settings());
                        $current_settings['app_key'] = $app_key;
                        $current_settings['secret'] = $secret;
                        update_option('yotpo_settings', $current_settings);
                        return true;
                    } elseif ($response['status']['code'] >= 400) {
                        if (!empty($response['status']['message'])) {
                            wc_yotpo_display_message($response['status']['message'], true);
                        }
                    }
                } elseif ($response['status']['code'] >= 400) {
                    if (!empty($response['status']['message'])) {
                        if (is_array($response['status']['message']) && !empty($response['status']['message']['email'])) {
                            if (is_array($response['status']['message']['email'])) {
                                wc_yotpo_display_message($response['status']['message']['email'][0], false);
                            } else {
                                wc_yotpo_display_message($response['status']['message']['email'], false);
                            }
                        } else {
                            wc_yotpo_display_message($response['status']['message'], true);
                        }
                    }
                }
            } else {
                if ($response == 'b2c') {
                    return $response;
                }
            }
        } catch (Exception $e) {
            wc_yotpo_display_message($e->getMessage(), true);
        }
    } else {
        wc_yotpo_display_message($errors, false);
    }
    return false;
}
Example #3
0
function wc_yotpo_get_product_data($product)
{
    $product_data = array();
    $settings = get_option('yotpo_settings', wc_yotpo_get_degault_settings());
    $product_data['app_key'] = $settings['app_key'];
    $product_data['shop_domain'] = wc_yotpo_get_shop_domain();
    $product_data['url'] = get_permalink($product->id);
    $product_data['lang'] = $settings['language_code'];
    if ($settings['yotpo_language_as_site'] == true) {
        $lang = explode('-', get_bloginfo('language'));
        // In some languages there is a 3 letters language code
        //TODO map these iso-639-2 to iso-639-1 (from 3 letters language code to 2 letters language code)
        if (strlen($lang[0]) == 2) {
            $product_data['lang'] = $lang[0];
        }
    }
    $product_data['description'] = strip_tags($product->get_post_data()->post_excerpt);
    $product_data['id'] = $product->id;
    $product_data['title'] = $product->get_title();
    $product_data['image-url'] = wc_yotpo_get_product_image_url($product->id);
    $product_data['product-models'] = $product->get_sku();
    return $product_data;
}