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); }
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') {
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); }