function fn_paypal_get_product_option($product)
{
    $options = array();
    if (!empty($product['extra']['product_options'])) {
        foreach ($product['extra']['product_options'] as $option_id => $variant_id) {
            $option = fn_get_product_option_data($option_id, $product['product_id']);
            if (!empty($option)) {
                if ($option['option_type'] == 'F') {
                    if (!empty($product['extra']['custom_files'][$option_id])) {
                        $files = array();
                        foreach ($product['extra']['custom_files'][$option_id] as $file) {
                            $files[] = $file['name'];
                        }
                        $options[] = $option['option_name'] . ': ' . implode(',', $files);
                    }
                } elseif ($option['option_type'] == 'C') {
                    if (!empty($option['variants'][$variant_id])) {
                        $options[] = $option['option_name'];
                    }
                } elseif (empty($option['variants'])) {
                    if (!empty($variant_id)) {
                        $options[] = $option['option_name'] . ': ' . $variant_id;
                    }
                } else {
                    $options[] = $option['option_name'] . ': ' . $option['variants'][$variant_id]['variant_name'];
                }
            }
        }
    }
    return implode(", ", $options);
}
Beispiel #2
0
    Registry::get('view')->assign('object', 'global');
    if (empty($product_options) && defined('AJAX_REQUEST')) {
        $ajax->assign('force_redirection', fn_url('product_options.manage'));
    }
    //
    // Apply options to products
    //
} elseif ($mode == 'apply') {
    list($product_options, $search) = fn_get_product_global_options();
    Registry::get('view')->assign('product_options', $product_options);
    //
    // Update option
    //
} elseif ($mode == 'update') {
    $product_id = !empty($_REQUEST['product_id']) ? $_REQUEST['product_id'] : 0;
    $o_data = fn_get_product_option_data($_REQUEST['option_id'], $product_id);
    if (fn_allowed_for('ULTIMATE') && !empty($_REQUEST['product_id'])) {
        Registry::get('view')->assign('shared_product', fn_ult_is_shared_product($_REQUEST['product_id']));
        Registry::get('view')->assign('product_company_id', db_get_field('SELECT company_id FROM ?:products WHERE product_id = ?i', $_REQUEST['product_id']));
    }
    if (isset($_REQUEST['object'])) {
        Registry::get('view')->assign('object', $_REQUEST['object']);
    }
    Registry::get('view')->assign('option_data', $o_data);
    Registry::get('view')->assign('option_id', $_REQUEST['option_id']);
}
if (!fn_allowed_for('ULTIMATE:FREE')) {
    //
    // Product options exceptions
    //
    if ($mode == 'exceptions') {
Beispiel #3
0
 public function index($id = 0, $params = array())
 {
     $lang_code = $this->safeGet($params, 'lang_code', DEFAULT_LANGUAGE);
     if (empty($id) && empty($params['product_id'])) {
         $status = Response::STATUS_BAD_REQUEST;
         $data['message'] = __('api_required_field', array('[field]' => 'product_id'));
     } else {
         $product_id = $this->safeGet($params, 'product_id', 0);
         if (empty($product_id)) {
             $product_id = db_get_field('SELECT product_id FROM ?:product_options WHERE option_id = ?i', $id);
         }
         $product_data = fn_get_product_data($product_id, $this->auth, $lang_code, '', false, false, false, false, false, false, false);
         if (empty($product_data)) {
             $status = Response::STATUS_NOT_FOUND;
             $data = array();
         } else {
             if (!empty($id)) {
                 $data = fn_get_product_option_data($id, $product_id, $lang_code);
                 $status = Response::STATUS_OK;
             } else {
                 $data = fn_get_product_options($product_id, $lang_code);
                 $status = Response::STATUS_OK;
             }
             if (empty($data)) {
                 $status = Response::STATUS_NOT_FOUND;
             }
         }
     }
     return array('status' => $status, 'data' => $data);
 }