Guest Posted July 30, 2003 Posted July 30, 2003 During the check-out process, under Payment Method, I offer the choice between Credit Card and PayPal. I would like to add text or an image next to both of the payment options. Basically I would want to show it so people know which to choose based on how they are paying: Credit Card (VISA and MasterCard) Credit Card Owner: Credit Card Number: Credit Card Expiry Date: PayPal (AMEX, Discover, eCheck) Can this be done? I can't figure out which file to modify, I think I've search them all a few times. Any help is greatly appreciated. thank you
mrcold213 Posted July 30, 2003 Posted July 30, 2003 Sure it's do-able just modify the file catalog/checkout_payment.php then you can either a images statically, or create a table and query the image path (more secure, and robust). post question if you have problems
Guest Posted July 30, 2003 Posted July 30, 2003 Great, now that I know that it can be done. How would I go about modifying catalog/checkout_payment.php to do this. I've played around with it, but I keep getting various errors. I'm new at php if you you couldn't tell.
ybrich Posted August 2, 2003 Posted August 2, 2003 Did you ever figure out how to make this change. I was trying to find out how to do the same thing; saw your post, but haven't seen a reply as to how. The line that needs edited seems somehow to get created through pixel_trans.gif (??) I also am a php newbie, and sure would like some help on this one.
Guest Posted August 2, 2003 Posted August 2, 2003 I still haven't figured out how to add the text or images. Any help out there? :)
Rumble Posted August 2, 2003 Posted August 2, 2003 In your payment modules eg catalog/includes/modules/payment/paypal.php find the following set of code function selection() { return array('id' => $this->code, 'module' => $this->title); } and change to the following function selection() { return array('id' => $this->code, 'module' => $this->title, 'image' => '<img src="images/paypalcards.gif" border="0" align="absmiddle">'); } where paypalcards.gif is the image of the cards paypal accepts Do the same in the other payment modules you want similar images to appear next to. Then in checkout_payment.php find the following code <?php echo $selection[$i]['module']; ?> and change to <?php echo $selection[$i]['module']; ?> <?php echo $selection[$i]['image']; ?> Back up before you try! Reddy to Rumble Thank you osCommerce and all who Contribute to her!
ybrich Posted August 3, 2003 Posted August 3, 2003 Thanks Reddy. I'm sure this will work for paypal, but what file would you change for the credit card payment method? The code pattern your referencing shows up in cod.php, freecharge.php, paypalipn.php, moneyorder.php, secpay.php, paypal.php and nochex.php, but it does not appear in cc.php.
Rumble Posted August 3, 2003 Posted August 3, 2003 Paste your code in here Reddy to Rumble Thank you osCommerce and all who Contribute to her!
ybrich Posted August 3, 2003 Posted August 3, 2003 Here's the complete cc.php from catalog/includes/modules/payments <?php /* $Id: cc.php,v 1.7 2003/02/10 20:48:40 wilt Exp $ osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com Copyright (c) 2002 osCommerce Released under the GNU General Public License */ class cc { var $code, $title, $description, $enabled; // class constructor function cc() { global $order; $this->code = 'cc'; $this->title = MODULE_PAYMENT_CC_TEXT_TITLE; $this->description = MODULE_PAYMENT_CC_TEXT_DESCRIPTION; $this->sort_order = MODULE_PAYMENT_CC_SORT_ORDER; // BOF: WebMakers.com Added: Free Payments and Shipping if ( tep_get_free_charger($this->code) ) { $this->enabled = ((MODULE_PAYMENT_CC_STATUS == 'True') ? true : false); } // EOF: WebMakers.com Added: Free Payments and Shipping if ((int)MODULE_PAYMENT_CC_ORDER_STATUS_ID > 0) { $this->order_status = MODULE_PAYMENT_CC_ORDER_STATUS_ID; } if (is_object($order)) $this->update_status(); } // class methods function update_status() { global $order; if ( ($this->enabled == true) && ((int)MODULE_PAYMENT_CC_ZONE > 0) ) { $check_flag = false; $check_query = tep_db_query("select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . MODULE_PAYMENT_CC_ZONE . "' and zone_country_id = '" . $order->billing['country']['id'] . "' order by zone_id"); while ($check = tep_db_fetch_array($check_query)) { if ($check['zone_id'] < 1) { $check_flag = true; break; } elseif ($check['zone_id'] == $order->billing['zone_id']) { $check_flag = true; break; } } if ($check_flag == false) { $this->enabled = false; } } } function javascript_validation() { $js = ' if (payment_value == "' . $this->code . '") {' . "n" . ' var cc_owner = document.checkout_payment.cc_owner.value;' . "n" . ' var cc_number = document.checkout_payment.cc_number.value;' . "n" . ' if (cc_owner == "" || cc_owner.length < ' . CC_OWNER_MIN_LENGTH . ') {' . "n" . ' error_message = error_message + "' . MODULE_PAYMENT_CC_TEXT_JS_CC_OWNER . '";' . "n" . ' error = 1;' . "n" . ' }' . "n" . ' if (cc_number == "" || cc_number.length < ' . CC_NUMBER_MIN_LENGTH . ') {' . "n" . ' error_message = error_message + "' . MODULE_PAYMENT_CC_TEXT_JS_CC_NUMBER . '";' . "n" . ' error = 1;' . "n" . ' }' . "n" . ' }' . "n"; return $js; } function selection() { global $order; for ($i=1; $i<13; $i++) { $expires_month[] = array('id' => sprintf('%02d', $i), 'text' => strftime('%B',mktime(0,0,0,$i,1,2000))); } $today = getdate(); for ($i=$today['year']; $i < $today['year']+10; $i++) { $expires_year[] = array('id' => strftime('%y',mktime(0,0,0,1,1,$i)), 'text' => strftime('%Y',mktime(0,0,0,1,1,$i))); } $selection = array('id' => $this->code, 'module' => $this->title, 'fields' => array(array('title' => MODULE_PAYMENT_CC_TEXT_CREDIT_CARD_OWNER, 'field' => tep_draw_input_field('cc_owner', $order->billing['firstname'] . ' ' . $order->billing['lastname'])), array('title' => MODULE_PAYMENT_CC_TEXT_CREDIT_CARD_NUMBER, 'field' => tep_draw_input_field('cc_number')), array('title' => MODULE_PAYMENT_CC_TEXT_CREDIT_CARD_EXPIRES, 'field' => tep_draw_pull_down_menu('cc_expires_month', $expires_month) . ' ' . tep_draw_pull_down_menu('cc_expires_year', $expires_year)))); return $selection; } function pre_confirmation_check() { global $HTTP_POST_VARS; include(DIR_WS_CLASSES . 'cc_validation.php'); $cc_validation = new cc_validation(); $result = $cc_validation->validate($HTTP_POST_VARS['cc_number'], $HTTP_POST_VARS['cc_expires_month'], $HTTP_POST_VARS['cc_expires_year']); $error = ''; switch ($result) { case -1: $error = sprintf(TEXT_CCVAL_ERROR_UNKNOWN_CARD, substr($cc_validation->cc_number, 0, 4)); break; case -2: case -3: case -4: $error = TEXT_CCVAL_ERROR_INVALID_DATE; break; case false: $error = TEXT_CCVAL_ERROR_INVALID_NUMBER; break; } if ( ($result == false) || ($result < 1) ) { $payment_error_return = 'payment_error=' . $this->code . '&error=' . urlencode($error) . '&cc_owner=' . urlencode($HTTP_POST_VARS['cc_owner']) . '&cc_expires_month=' . $HTTP_POST_VARS['cc_expires_month'] . '&cc_expires_year=' . $HTTP_POST_VARS['cc_expires_year']; tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, $payment_error_return, 'SSL', true, false)); } $this->cc_card_type = $cc_validation->cc_type; $this->cc_card_number = $cc_validation->cc_number; } function confirmation() { global $HTTP_POST_VARS; $confirmation = array('title' => $this->title . ': ' . $this->cc_card_type, 'fields' => array(array('title' => MODULE_PAYMENT_CC_TEXT_CREDIT_CARD_OWNER, 'field' => $HTTP_POST_VARS['cc_owner']), array('title' => MODULE_PAYMENT_CC_TEXT_CREDIT_CARD_NUMBER, 'field' => substr($this->cc_card_number, 0, 4) . str_repeat('X', (strlen($this->cc_card_number) - 8)) . substr($this->cc_card_number, -4)), array('title' => MODULE_PAYMENT_CC_TEXT_CREDIT_CARD_EXPIRES, 'field' => strftime('%B, %Y', mktime(0,0,0,$HTTP_POST_VARS['cc_expires_month'], 1, '20' . $HTTP_POST_VARS['cc_expires_year']))))); return $confirmation; } function process_button() { global $HTTP_POST_VARS; $process_button_string = tep_draw_hidden_field('cc_owner', $HTTP_POST_VARS['cc_owner']) . tep_draw_hidden_field('cc_expires', $HTTP_POST_VARS['cc_expires_month'] . $HTTP_POST_VARS['cc_expires_year']) . tep_draw_hidden_field('cc_type', $this->cc_card_type) . tep_draw_hidden_field('cc_number', $this->cc_card_number); return $process_button_string; } function before_process() { global $HTTP_POST_VARS, $order; if ( (defined('MODULE_PAYMENT_CC_EMAIL')) && (tep_validate_email(MODULE_PAYMENT_CC_EMAIL)) ) { $len = strlen($HTTP_POST_VARS['cc_number']); $this->cc_middle = substr($HTTP_POST_VARS['cc_number'], 4, ($len-8)); $order->info['cc_number'] = substr($HTTP_POST_VARS['cc_number'], 0, 4) . str_repeat('X', (strlen($HTTP_POST_VARS['cc_number']) - 8)) . substr($HTTP_POST_VARS['cc_number'], -4); } } function after_process() { global $insert_id; if ( (defined('MODULE_PAYMENT_CC_EMAIL')) && (tep_validate_email(MODULE_PAYMENT_CC_EMAIL)) ) { $message = 'Order #' . $insert_id . "nn" . 'Middle: ' . $this->cc_middle . "nn"; tep_mail('', MODULE_PAYMENT_CC_EMAIL, 'Extra Order Info: #' . $insert_id, $message, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS); } } function get_error() { global $HTTP_GET_VARS; $error = array('title' => MODULE_PAYMENT_CC_TEXT_ERROR, 'error' => stripslashes(urldecode($HTTP_GET_VARS['error']))); return $error; } function check() { if (!isset($this->_check)) { $check_query = tep_db_query("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_PAYMENT_CC_STATUS'"); $this->_check = tep_db_num_rows($check_query); } return $this->_check; } function install() { tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Enable Credit Card Module', 'MODULE_PAYMENT_CC_STATUS', 'True', 'Do you want to accept credit card payments?', '6', '0', 'tep_cfg_select_option(array('True', 'False'), ', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Split Credit Card E-Mail Address', 'MODULE_PAYMENT_CC_EMAIL', '', 'If an e-mail address is entered, the middle digits of the credit card number will be sent to the e-mail address (the outside digits are stored in the database with the middle digits censored)', '6', '0', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Sort order of display.', 'MODULE_PAYMENT_CC_SORT_ORDER', '0', 'Sort order of display. Lowest is displayed first.', '6', '0' , now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, use_function, set_function, date_added) values ('Payment Zone', 'MODULE_PAYMENT_CC_ZONE', '0', 'If a zone is selected, only enable this payment method for that zone.', '6', '2', 'tep_get_zone_class_title', 'tep_cfg_pull_down_zone_classes(', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, use_function, date_added) values ('Set Order Status', 'MODULE_PAYMENT_CC_ORDER_STATUS_ID', '0', 'Set the status of orders made with this payment module to this value', '6', '0', 'tep_cfg_pull_down_order_statuses(', 'tep_get_order_status_name', now())"); } function remove() { tep_db_query("delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode("', '", $this->keys()) . "')"); } function keys() { return array('MODULE_PAYMENT_CC_STATUS', 'MODULE_PAYMENT_CC_EMAIL', 'MODULE_PAYMENT_CC_ZONE', 'MODULE_PAYMENT_CC_ORDER_STATUS_ID', 'MODULE_PAYMENT_CC_SORT_ORDER'); } } ?> Thanks for the help! Jim
Rumble Posted August 3, 2003 Posted August 3, 2003 Its only slightly different, change $selection = array('id' => $this->code, 'module' => $this->title, to.......... $selection = array('id' => $this->code, 'module' => $this->title, 'image' => '<img src="images/cards.gif" border="0" align="absmiddle">', Reddy to Rumble Thank you osCommerce and all who Contribute to her!
Rumble Posted August 3, 2003 Posted August 3, 2003 on or around line 88 :D Reddy to Rumble Thank you osCommerce and all who Contribute to her!
ybrich Posted August 3, 2003 Posted August 3, 2003 That's it! You've have been a tremendous help. Thanks again! Jim
Guest Posted August 4, 2003 Posted August 4, 2003 Reddy to Rumble It works great. Thanks for all you help. Jim
Rumble Posted August 4, 2003 Posted August 4, 2003 No problem Jim and Jim :D Reddy to Rumble Thank you osCommerce and all who Contribute to her!
Recommended Posts
Archived
This topic is now archived and is closed to further replies.