Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

kudos

Pioneers
  • Posts

    27
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by kudos

  1. HI using Phoenix Edition v1.0.7.12 KissIT_image_thumbnailer_Pro_3.4.2 i have an error after i installed the addon,. i reload the website with the addon installed and get a blank index page and in the logs i am getting [28-Dec-2020 16:18:01 Europe/London] PHP Fatal error: Uncaught Error: Call to undefined function tep_image() in /templates/default/includes/components/product_card.php:1 thanks
  2. i have resolved this now... found we can turn this back on in the php.ini thanks, rob
  3. thanks for a reply, still waiting for a update from the host.. but some google searching shows a lot of hosts have this disabled by default now it seems. we are on PHP 5.3
  4. HI we have the paypal app installed but we are getting this error in the logs, and the app does not show the paypal balance etc PHP Warning: curl_exec() has been disabled for security reasons in /includes/apps/paypal/OSCOM_PayPal.php on line 457, referer: paypal.php?action=balance has any one got a fix for this? thanks, rob
  5. hi, is there away to add Multiple generic box's? thanks, rob
  6. i got this to work in the end.... i found a older html_output.php file, took the code from that (copy, paste over my backup file) made any mods and then it all worked, but i cant see what is different only that maybe copying it from the word doc files it has some odd hidden formatting in place? as i had the same issue with the 2334standard_product_info.php line 122 , Syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ',' or ';' <?php echo '<a href="' . tep_href_link(DIR_WS_IMAGES . $product_info['products_image']) '', 'NONSSL', false) . '" target="_blank" rel="fancybox">' . tep_image(DIR_WS_IMAGES . $product_info['products_image'], addslashes($product_info['products_name']), KISSIT_MAIN_PRODUCT_IMAGE_WIDTH, KISSIT_MAIN_PRODUCT_IMAGE_HEIGHT, 'hspace="5" vspace="5"') . '</a>'; ?> but i could not see the error.. took the same line from a different file, and put the kissit mods into the line and all worked i dont know if its files i have or it is in the release version might be worth a check. thought id give a heads up what my problem was tho might help
  7. Hi thanks for the reply happens on any page i try to go to, i tried main page, product_info etc , same error i checked the admin, it does have the defaults in there... 450 600 maybe its in a whats new scroll box ill have a poke around later on see if i can find the problem at least you have me some ideas where to check with a function call.
  8. just tryed to put the latest version on my site but i am getting a error in the html_output file PHP Parse error: syntax error, unexpected T_VARIABLE in includes/functions/html_output.php on line 29 here is my file, can any one see the error? <?php /* $Id$ osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com Copyright (c) 2010 osCommerce Released under the GNU General Public License */ //// // Ultimate SEO URLs v2.2d // The HTML href link wrapper function function tep_href_link($page = '', $parameters = '', $connection = 'NONSSL', $add_session_id = true, $search_engine_safe = true) { global $seo_urls; if ( !is_object($seo_urls) ){ if ( !class_exists('SEO_URL') ){ include_once(DIR_WS_CLASSES . 'seo.class.php'); } global $languages_id; $seo_urls = new SEO_URL($languages_id); } return $seo_urls->href_link($page, $parameters, $connection, $add_session_id); } // New HTML image wrapper function modified for KISS Image Thumbnailer by FWR Media function tep_image($src, $alt = '', $width = '', $height = '', $parameters = '') { // If width and height are not numeric then we can't do anything with it if ( !is_numeric ( $width ) || !is_numeric ( $height ) ) return tep_image_legacy( $src, $alt, $width, $height, $parameters ) ; require_once DIR_WS_MODULES . 'kiss_image_thumbnailer/classes/Image_Helper.php'; $attributes = array( 'alt' => $alt, 'width' => $width, 'height' => $height ); $image = new Image_Helper( array( 'src' => $src, 'attributes' => $attributes, 'parameters' => $parameters, 'default_missing_image' => DIR_WS_IMAGES . 'no_image_available_150_150.gif', 'isXhtml' => true, 'thumbs_dir_path' => DIR_WS_MODULES . 'kiss_image_thumbnailer/thumbs/', 'thumb_quality' => 75, 'thumb_background_rgb' => array( 'red' => 255, 'green' => 255, 'blue' => 255 ) ) ); if ( false === $image_assembled = $image->assemble() ) { return tep_image_legacy( $src, $alt, $width, $height, $parameters ); } return $image_assembled; } // end function //// // The HTML image wrapper function function tep_image_legacy($src, $alt = '', $width = '', $height = '', $parameters = '') { if ( (empty($src) || ($src == DIR_WS_IMAGES)) && (IMAGE_REQUIRED == 'false') ) { return false; } // alt is added to the img tag even if it is null to prevent browsers from outputting // the image filename as default $image = '<img src="' . tep_output_string($src) . '" alt="' . tep_output_string($alt) . '"'; if (tep_not_null($alt)) { $image .= ' title="' . tep_output_string($alt) . '"'; } if ( (CONFIG_CALCULATE_IMAGE_SIZE == 'true') && (empty($width) || empty($height)) ) { if ($image_size = @getimagesize($src)) { if (empty($width) && tep_not_null($height)) { $ratio = $height / $image_size[1]; $width = intval($image_size[0] * $ratio); } elseif (tep_not_null($width) && empty($height)) { $ratio = $width / $image_size[0]; $height = intval($image_size[1] * $ratio); } elseif (empty($width) && empty($height)) { $width = $image_size[0]; $height = $image_size[1]; } } elseif (IMAGE_REQUIRED == 'false') { return false; } } if (tep_not_null($width) && tep_not_null($height)) { $image .= ' width="' . tep_output_string($width) . '" height="' . tep_output_string($height) . '"'; } if (tep_not_null($parameters)) $image .= ' ' . $parameters; $image .= ' />'; return $image; } //// // The HTML form submit button wrapper function // Outputs a button in the selected language function tep_image_submit($image, $alt = '', $parameters = '') { global $language; $image_submit = '<input type="image" src="' . tep_output_string(DIR_WS_LANGUAGES . $language . '/images/buttons/' . $image) . '" alt="' . tep_output_string($alt) . '"'; if (tep_not_null($alt)) $image_submit .= ' title=" ' . tep_output_string($alt) . ' "'; if (tep_not_null($parameters)) $image_submit .= ' ' . $parameters; $image_submit .= ' />'; return $image_submit; } //// // Output a function button in the selected language function tep_image_button($image, $alt = '', $parameters = '') { global $language; return tep_image(DIR_WS_LANGUAGES . $language . '/images/buttons/' . $image, $alt, '', '', $parameters); } //// // Output a separator either through whitespace, or with an image function tep_draw_separator($image = 'pixel_black.gif', $width = '100%', $height = '1') { return tep_image(DIR_WS_IMAGES . $image, '', $width, $height); } //// // Output a form function tep_draw_form($name, $action, $method = 'post', $parameters = '', $tokenize = false) { global $sessiontoken; $form = '<form name="' . tep_output_string($name) . '" action="' . tep_output_string($action) . '" method="' . tep_output_string($method) . '"'; if (tep_not_null($parameters)) $form .= ' ' . $parameters; $form .= '>'; if ( ($tokenize == true) && isset($sessiontoken) ) { $form .= '<input type="hidden" name="formid" value="' . tep_output_string($sessiontoken) . '" />'; } return $form; } //// // Output a form input field function tep_draw_input_field($name, $value = '', $parameters = '', $type = 'text', $reinsert_value = true) { global $HTTP_GET_VARS, $HTTP_POST_VARS; $field = '<input type="' . tep_output_string($type) . '" name="' . tep_output_string($name) . '"'; if ( ($reinsert_value == true) && ( (isset($HTTP_GET_VARS[$name]) && is_string($HTTP_GET_VARS[$name])) || (isset($HTTP_POST_VARS[$name]) && is_string($HTTP_POST_VARS[$name])) ) ) { if (isset($HTTP_GET_VARS[$name]) && is_string($HTTP_GET_VARS[$name])) { $value = stripslashes($HTTP_GET_VARS[$name]); } elseif (isset($HTTP_POST_VARS[$name]) && is_string($HTTP_POST_VARS[$name])) { $value = stripslashes($HTTP_POST_VARS[$name]); } } if (tep_not_null($value)) { $field .= ' value="' . tep_output_string($value) . '"'; } if (tep_not_null($parameters)) $field .= ' ' . $parameters; $field .= ' />'; return $field; } //// // Output a form password field function tep_draw_password_field($name, $value = '', $parameters = 'maxlength="40"') { return tep_draw_input_field($name, $value, $parameters, 'password', false); } //// // Output a selection field - alias function for tep_draw_checkbox_field() and tep_draw_radio_field() function tep_draw_selection_field($name, $type, $value = '', $checked = false, $parameters = '') { global $HTTP_GET_VARS, $HTTP_POST_VARS; $selection = '<input type="' . tep_output_string($type) . '" name="' . tep_output_string($name) . '"'; if (tep_not_null($value)) $selection .= ' value="' . tep_output_string($value) . '"'; if ( ($checked == true) || (isset($HTTP_GET_VARS[$name]) && is_string($HTTP_GET_VARS[$name]) && (($HTTP_GET_VARS[$name] == 'on') || (stripslashes($HTTP_GET_VARS[$name]) == $value))) || (isset($HTTP_POST_VARS[$name]) && is_string($HTTP_POST_VARS[$name]) && (($HTTP_POST_VARS[$name] == 'on') || (stripslashes($HTTP_POST_VARS[$name]) == $value))) ) { $selection .= ' checked="checked"'; } if (tep_not_null($parameters)) $selection .= ' ' . $parameters; $selection .= ' />'; return $selection; } //// // Output a form checkbox field function tep_draw_checkbox_field($name, $value = '', $checked = false, $parameters = '') { return tep_draw_selection_field($name, 'checkbox', $value, $checked, $parameters); } //// // Output a form radio field function tep_draw_radio_field($name, $value = '', $checked = false, $parameters = '') { return tep_draw_selection_field($name, 'radio', $value, $checked, $parameters); } //// // Output a form textarea field // The $wrap parameter is no longer used in the core xhtml template function tep_draw_textarea_field($name, $wrap, $width, $height, $text = '', $parameters = '', $reinsert_value = true) { global $HTTP_GET_VARS, $HTTP_POST_VARS; $field = '<textarea name="' . tep_output_string($name) . '" cols="' . tep_output_string($width) . '" rows="' . tep_output_string($height) . '"'; if (tep_not_null($parameters)) $field .= ' ' . $parameters; $field .= '>'; if ( ($reinsert_value == true) && ( (isset($HTTP_GET_VARS[$name]) && is_string($HTTP_GET_VARS[$name])) || (isset($HTTP_POST_VARS[$name]) && is_string($HTTP_POST_VARS[$name])) ) ) { if (isset($HTTP_GET_VARS[$name]) && is_string($HTTP_GET_VARS[$name])) { $field .= tep_output_string_protected(stripslashes($HTTP_GET_VARS[$name])); } elseif (isset($HTTP_POST_VARS[$name]) && is_string($HTTP_POST_VARS[$name])) { $field .= tep_output_string_protected(stripslashes($HTTP_POST_VARS[$name])); } } elseif (tep_not_null($text)) { $field .= tep_output_string_protected($text); } $field .= '</textarea>'; return $field; } //// // Output a form hidden field function tep_draw_hidden_field($name, $value = '', $parameters = '') { global $HTTP_GET_VARS, $HTTP_POST_VARS; $field = '<input type="hidden" name="' . tep_output_string($name) . '"'; if (tep_not_null($value)) { $field .= ' value="' . tep_output_string($value) . '"'; } elseif ( (isset($HTTP_GET_VARS[$name]) && is_string($HTTP_GET_VARS[$name])) || (isset($HTTP_POST_VARS[$name]) && is_string($HTTP_POST_VARS[$name])) ) { if ( (isset($HTTP_GET_VARS[$name]) && is_string($HTTP_GET_VARS[$name])) ) { $field .= ' value="' . tep_output_string(stripslashes($HTTP_GET_VARS[$name])) . '"'; } elseif ( (isset($HTTP_POST_VARS[$name]) && is_string($HTTP_POST_VARS[$name])) ) { $field .= ' value="' . tep_output_string(stripslashes($HTTP_POST_VARS[$name])) . '"'; } } if (tep_not_null($parameters)) $field .= ' ' . $parameters; $field .= ' />'; return $field; } //// // Hide form elements function tep_hide_session_id() { global $session_started, $SID; if (($session_started == true) && tep_not_null($SID)) { return tep_draw_hidden_field(tep_session_name(), tep_session_id()); } } //// // Output a form pull down menu function tep_draw_pull_down_menu($name, $values, $default = '', $parameters = '', $required = false) { global $HTTP_GET_VARS, $HTTP_POST_VARS; $field = '<select name="' . tep_output_string($name) . '"'; if (tep_not_null($parameters)) $field .= ' ' . $parameters; $field .= '>'; if (empty($default) && ( (isset($HTTP_GET_VARS[$name]) && is_string($HTTP_GET_VARS[$name])) || (isset($HTTP_POST_VARS[$name]) && is_string($HTTP_POST_VARS[$name])) ) ) { if (isset($HTTP_GET_VARS[$name]) && is_string($HTTP_GET_VARS[$name])) { $default = stripslashes($HTTP_GET_VARS[$name]); } elseif (isset($HTTP_POST_VARS[$name]) && is_string($HTTP_POST_VARS[$name])) { $default = stripslashes($HTTP_POST_VARS[$name]); } } for ($i=0, $n=sizeof($values); $i<$n; $i++) { $field .= '<option value="' . tep_output_string($values[$i]['id']) . '"'; if ($default == $values[$i]['id']) { $field .= ' selected="selected"'; } $field .= '>' . tep_output_string($values[$i]['text'], array('"' => '"', '\'' => ''', '<' => '<', '>' => '>')) . '</option>'; } $field .= '</select>'; if ($required == true) $field .= TEXT_FIELD_REQUIRED; return $field; } //// // Creates a pull-down list of countries function tep_get_country_list($name, $selected = '', $parameters = '') { $countries_array = array(array('id' => '', 'text' => PULL_DOWN_DEFAULT)); $countries = tep_get_countries(); for ($i=0, $n=sizeof($countries); $i<$n; $i++) { $countries_array[] = array('id' => $countries[$i]['countries_id'], 'text' => $countries[$i]['countries_name']); } return tep_draw_pull_down_menu($name, $countries_array, $selected, $parameters); } //// // Output a jQuery UI Button function tep_draw_button($title = null, $icon = null, $link = null, $priority = null, $params = null) { static $button_counter = 1; $types = array('submit', 'button', 'reset'); if ( !isset($params['type']) ) { $params['type'] = 'submit'; } if ( !in_array($params['type'], $types) ) { $params['type'] = 'submit'; } if ( ($params['type'] == 'submit') && isset($link) ) { $params['type'] = 'button'; } if (!isset($priority)) { $priority = 'secondary'; } $button = '<span class="tdbLink">'; if ( ($params['type'] == 'button') && isset($link) ) { $button .= '<a id="tdb' . $button_counter . '" href="' . $link . '"'; if ( isset($params['newwindow']) ) { $button .= ' target="_blank"'; } } else { $button .= '<button id="tdb' . $button_counter . '" type="' . tep_output_string($params['type']) . '"'; } if ( isset($params['params']) ) { $button .= ' ' . $params['params']; } $button .= '>' . $title; if ( ($params['type'] == 'button') && isset($link) ) { $button .= '</a>'; } else { $button .= '</button>'; } $button .= '</span><script type="text/javascript">$("#tdb' . $button_counter . '").button('; $args = array(); if ( isset($icon) ) { if ( !isset($params['iconpos']) ) { $params['iconpos'] = 'left'; } if ( $params['iconpos'] == 'left' ) { $args[] = 'icons:{primary:"ui-icon-' . $icon . '"}'; } else { $args[] = 'icons:{secondary:"ui-icon-' . $icon . '"}'; } } if (empty($title)) { $args[] = 'text:false'; } if (!empty($args)) { $button .= '{' . implode(',', $args) . '}'; } $button .= ').addClass("ui-priority-' . $priority . '").parent().removeClass("tdbLink");</script>'; $button_counter++; return $button; } //// // Output a form radio menu for product info page maniac101 function tep_draw_radio_menu($name, $values, $default = '', $parameters = '', $required = false) { $field ='<table border="0" cellspacing="0" cellpadding="0"><tr><td class="main">'; if (empty($default) && isset($GLOBALS[$name])) $default = stripslashes($GLOBALS[$name]); for ($i=0, $n=sizeof($values); $i<$n; $i++) { $value = tep_output_string($values[$i]['id']); $field .= '<input type="radio" name="' . $name . '" value="' . $value . '"'; if ($i == 0) $field .= ' checked'; $field .= '>' . tep_output_string($values[$i]['text'], array('"' => '"', '\'' => ''', '<' => '<', '>' => '>')) . '<br />'; } $field .= '</td></tr></table>'; if ($required == true) $field .= TEXT_FIELD_REQUIRED; return $field; } //// //// // Creates a pull-down list for dates function tep_draw_pull_down_date($name='date', $day='', $month='', $year='', $full=false, $mnth=false, $starty=''){ if ($day=='') $day= '0' ; if ($month=='') $month = '0'; if ($year=='') $year= '0'; $endy=date('Y')-8; if ($starty=='') { $starty=date('Y')-1;$endy=date('Y')+2; } $named = $name . 'd'; $namem = $name . 'm'; $namey = $name . 'Y'; // Array for days $defaultday[0] = array('id' => '0', 'text' => TEXT_DATE_DAY); for($i=1; $i<=31; $i++) { if(strlen($i)!= 2) { $j = '0' . $i; } else { $j = $i; } $days[] = array('id' => $j, 'text' => $j); } if ( $day == '0' ) $days = array_merge($defaultday, $days); // Array for months $defaultmonth[0] = array('id' => '0', 'text' => TEXT_DATE_MONTH); if ($mnth) { $months = array(array('id' => '01', 'text' => TEXT_DATE_JAN), array('id' => '02', 'text' => TEXT_DATE_FEB), array('id' => '03', 'text' => TEXT_DATE_MAR), array('id' => '04', 'text' => TEXT_DATE_APR), array('id' => '05', 'text' => TEXT_DATE_MAY), array('id' => '06', 'text' => TEXT_DATE_JUN), array('id' => '07', 'text' => TEXT_DATE_JUL), array('id' => '08', 'text' => TEXT_DATE_AUG), array('id' => '09', 'text' => TEXT_DATE_SEP), array('id' => '10', 'text' => TEXT_DATE_OCT), array('id' => '11', 'text' => TEXT_DATE_NOV), array('id' => '12', 'text' => TEXT_DATE_DEC)); } else { for($i=1; $i<=12; $i++) { if(strlen($i)!= 2){ $j = '0' . $i; } else { $j = $i; } $months[] = array('id' => $j, 'text' => $j); } } if ( $month == '0' ) $months = array_merge($defaultmonth, $months); // Array for years $defaultyear[0] = array('id' => '0', 'text' => TEXT_DATE_YEAR); for($i=$starty; $i<=$endy; $i++) { $j = $i; if ($full) { $y = $i - 2000; if(strlen($y)!= 2) { $j = '0' . $y; } else { $j = $y; } } $years[] = array('id' => $i, 'text' => $j); } if ( $year == '0' ) $years = array_merge($defaultyear, $years); $field=''; switch (DATE_FORMAT) { case 'd/m/Y': $field .= tep_draw_pull_down_menu($named, $days, $day); $field .= tep_draw_pull_down_menu($namem, $months, $month); $field .= tep_draw_pull_down_menu($namey, $years, $year); break; case 'm/d/Y': $field .= tep_draw_pull_down_menu($named, $months, $month); $field .= tep_draw_pull_down_menu($namem, $days, $day); $field .= tep_draw_pull_down_menu($namey, $years, $year); break; case 'Y/m/d': $field .= tep_draw_pull_down_menu($named, $years, $year); $field .= tep_draw_pull_down_menu($namem, $months, $month); $field .= tep_draw_pull_down_menu($namey, $days, $day); break; default: $field .= tep_draw_pull_down_menu($named, $days, $day); $field .= tep_draw_pull_down_menu($namem, $months, $month); $field .= tep_draw_pull_down_menu($namey, $years, $year); break; } return $field ; } //// ?> thanks,
  9. hi i am trying to get the DHL tracking module to work, i found the correct URL for the tracking info is http://www.dhl.co.uk/en/express/tracking.html?AWB= or http://www.dhl.com/en/express/tracking.html?AWB= but i see the tracking table is in javascript it seems so im not sure what todo next etc, can someone help us finishing making the changes to get this grate module working again? using the tracking module for 2.3 http://addons.oscommerce.com/info/7864 i have used the DHL module from here as a starting point - DHL Tracking 1.1 (with the needed mods from 2.3 readme) http://addons.oscommerce.com/info/5535 changes i made are in catalog/dp_tracking.php http://pastebin.com/aQwqCykJ also updated catalog/includes/modules/tracking/dp.php http://pastebin.com/ebVv9yxc any help would be grate, thanks rob
  10. Solved, removed the include in column_left file and all works now
  11. hi just tryed to add the PayPal App install to my site, running 2.3.4 followed the instructions, but now when i got the admin section i get this error PHP Fatal error: Cannot redeclare app_paypal_get_admin_box_links() (previously declared in /catalog/includes/apps/paypal/admin/functions/boxes.php:15) in /catalog/includes/apps/paypal/admin/functions/boxes.php on line 49 thanks, rob
  12. HI there, thanks for the link, i did a show kissit addon files., compared what i have to what is there and all is the same, image_Helper.php Image.php html_output.php part match's also. the addon is working for all imags on the site apart from the product_info.php page. i see you have taken away the javascript section on the product_info.php page when i do this , i end up with a full size image and non click able to view large size. this is my product_info.php file, i compared it to the one on github but could not see any other major changes mentioned for kissit. not sure what im missing here im not grate php coder etc. link to my product_info.php file http://pastebin.com/Z9biBt4U thanks for your time,
  13. Hi, has one got this to work with 2.3.4 in the product_info.php page? i tryed the above from Blackhex87 but noluck getting thuimbnails i tryed to change, <?php $pi_counter = 0; $pi_html = array(); while ($pi = tep_db_fetch_array($pi_query)) { $pi_counter++; if (tep_not_null($pi['htmlcontent'])) { $pi_html[] = '<div id="piGalDiv_' . $pi_counter . '">' . $pi['htmlcontent'] . '</div>'; } echo tep_image(DIR_WS_IMAGES . $pi['image'], '', '', '', 'id="piGalImg_' . $pi_counter . '"'); } ?> changed to <?php $pi_counter = 0; $pi_html = array(); while ($pi = tep_db_fetch_array($pi_query)) { $pi_counter++; if (tep_not_null($pi['htmlcontent'])) { $pi_html[] = '<div id="piGalDiv_' . $pi_counter . '">' . $pi['htmlcontent'] . '</div>'; } echo '<a href="' . tep_href_link(DIR_WS_IMAGES . $product_info['products_image']) . '" target="_blank">' . tep_image(DIR_WS_IMAGES . $pi['image'], '', KISSIT_MAIN_PRODUCT_IMAGE_WIDTH, KISSIT_MAIN_PRODUCT_IMAGE_HEIGHT, 'hspace="5" vspace="5" id="piGalImg_' . $pi_counter . '"') . '</a>'; } ?> this seems to have no effect on the images... does any one have a working product_info.php file with this grade addon? if it helps i can post my full product_info.php file. thanks, rob
  14. Hi there i was using this Contribution called Free Shipping plus other Ship methods see here http://www.oscommerce.com/community/contri...h,free+shipping i have installed Credit Class & Gift Voucher 5.14 with paypal and french fix the problem i have is i can not get the Free Shipping plus other Ship methods contribution to work with the CCGV one. if i copy over the correct code from the checkout_shipping.php for the Free Shipping plus other Ship methods into checkout_shipping.php that has all the CCGV info. the problem i get is when the order is over my free shipping ammount the otehr shipping options are not shown when they should be. so the coustomer can not choose a differnt shippng method if need be (eg via courier not free standard mail) i have tested the Free Shipping plus other Ship methods on its own and its perfect no problem. if any one could help this would be grate i have included a copy of the checkout_shipping.php for just the Free Shipping plus other Ship methods and also a copy of my sites checkout_shipping.php with the CCGV and Free Shipping plus other Ship methods merged into it. thanks for the help robert checkout_shipping.php for just the Free Shipping plus other Ship methods http://www.innovative-rc.co.uk/catalog-freeship_other.zip checkout_shipping.php with the CCGV and Free Shipping plus other Ship methods merged http://www.innovative-rc.co.uk/checkout-CC...eship_other.zip
×
×
  • Create New...