Jump to content
Latest News: (loading..)


  • Content count

  • Joined

  • Last visited

  • Days Won


Everything posted by raiwa

  1. raiwa

    Paypal payment pro credit card number issue

    Another way: Separate the input in 4 input fields, one for each group. Then concatenate them like this: 'ACCT' => $HTTP_POST_VARS['cc_number_nh-dns_1'] . $HTTP_POST_VARS['cc_number_nh-dns_2'] . $HTTP_POST_VARS['cc_number_nh-dns_3'] . $HTTP_POST_VARS['cc_number_nh-dns_4'],
  2. raiwa

    Paypal payment pro credit card number issue

    Hello Eric, The easiest step could be to add a placeholder text to the input field saying something like "no blank spaces" If you are using PayPal direct payment, you would need to edit the payment module: includes/modules/payment/paypal_pro_dp.php find line 161 and modify to: ' <td>' . tep_draw_input_field('cc_number_nh-dns', '', 'id="paypal_card_num" placeholder="' . $this->_app->getDef('module_dp_field_card_number_placeholder') . '"') . '</td>' . then add the language definition to: includes/apps/paypal/languages/english/modules/DP/DP.php: its a bit different done in the paypal app than in other language files: module_dp_field_card_number_placeholder = no blank spaces Then the second step could be to add a pattern check to the input filed which will show an error message if blank spaces are used. This is a html5 input validation and shows if they try to hit the form submit ("Confirm Order" button). This would look like follows: ' <td>' . tep_draw_input_field('cc_number_nh-dns', '', 'id="paypal_card_num" placeholder="' . $this->_app->getDef('module_dp_field_card_number_placeholder') . '" pattern="^\S+$"') . '</td>' . Then if you wish to auto remove blank spaces, try: line 212: 'ACCT' => str_replace(' ', '', $HTTP_POST_VARS['cc_number_nh-dns']),
  3. raiwa

    call to new function in addon

    Hello Pete @Portman, If you added the function outside the module class as a independant function, it should be available if the module is active on the product_info page. Check if there is a page selection if you have product_info.php included. Then the store module is loaded in template_top.php (supposed it's one of my store module add-ons, it is a modified header_tag module). Therefore the function will not be available before the template_top.php call: require('includes/template_top.php'); If you need the function before, you should opt to include it in includes/functions/general.php instead of adding it to the module. Then it is available everywhere after: require('includes/application_top.php');
  4. raiwa

    KissIT Image Thumnailer

    Hello Eric, I didn't try, but it should. KissIt Image Thumbnailer needs 2 conditions to work on images: 1. the tep_image function must be used for the image call 2. a valid image size (width and height) must be passed through the tep_image function. THis is only needed to create a smaller image, if no size is passed. a thumb with the original image size will be created if waterrmark is used. THis is useful for the full size pop-up. Now it depends on the lightbox coding if you can use the provided code for colorbox or if you need to tweak the code for lightbox. If you do not need watermark and do not have a lot of product images, you may just leave out the whole product image gallery without too much inconvenient.
  5. Sorry, I do not understand. What do you mean by "all versions category"? The add-on title says that it is for BS (Bootstrap).
  6. Hello @tttim6575, It will work with CE FROZEN and pre FROZEN EDGE version based on BS3. It will not work out of the box with EDGE based on BS4. You would need to update the html output to BS4. It is not intended to be used with standard. There are older versions available for this.
  7. raiwa

    Feedback for raiwa

    I would appreciate very much to get here some feedback from clients for whom I worked as a freelance developer as well as users of the iOSC mobile add-on since version 5. Please take the time to write your opinion about the quality of the realized job, communication, etc. I invite all of you who use any of my add-ons to post comments and give your opinion about them. Here a list of my add-ons: iOSC Mobile Version Contribution support for iOSC 5.x Google Product Search Feed 2.1 (Feedmachine Configuration) Sloppy Words Cleaner 1.5 Sitemap Generator incl. images Display tax below price since V.2.0 Sendestatus by Anja - Version 1.2 Detailed Item Invoice Fix for Paypal Standard Vers. 1.1. Feel free to contact me for any suggestion or question at my profile. Please don’t post questions or enquiries here.
  8. raiwa

    configuration values

    Hello lyn @ce7, It looks like the configuration constants for the entries which do not show up are missing in the keys function. Try to add them to the list: function keys() { For the eval code error, edit admin/modules_content.php and change line 297 to: eval('$keys .= ' . $value['set_function'] . "'" . tep_db_input($value['value']) . "', '" . $key . "');"); Best regards Rainer
  9. Hello Steve, Have a look in this part of orders.php quite at the end: if (isset($_GET['cID'])) { $cID = tep_db_prepare_input($_GET['cID']); $orders_query_raw = "select o.orders_id, o.customers_name, o.customers_id, o.payment_method, o.date_purchased, o.last_modified, o.currency, o.currency_value, s.orders_status_name, ot.text as order_total from " . TABLE_ORDERS . " o left join " . TABLE_ORDERS_TOTAL . " ot on (o.orders_id = ot.orders_id), " . TABLE_ORDERS_STATUS . " s where o.customers_id = '" . (int)$cID . "' and o.orders_status = s.orders_status_id and s.language_id = '" . (int)$languages_id . "' and ot.class = 'ot_total' order by orders_id DESC"; } elseif (isset($_GET['status']) && is_numeric($_GET['status']) && ($_GET['status'] > 0)) { $status = tep_db_prepare_input($_GET['status']); $orders_query_raw = "select o.orders_id, o.customers_name, o.payment_method, o.date_purchased, o.last_modified, o.currency, o.currency_value, s.orders_status_name, ot.text as order_total from " . TABLE_ORDERS . " o left join " . TABLE_ORDERS_TOTAL . " ot on (o.orders_id = ot.orders_id), " . TABLE_ORDERS_STATUS . " s where o.orders_status = s.orders_status_id and s.language_id = '" . (int)$languages_id . "' and s.orders_status_id = '" . (int)$status . "' and ot.class = 'ot_total' order by o.orders_id DESC"; } else { $orders_query_raw = "select o.orders_id, o.customers_name, o.payment_method, o.date_purchased, o.last_modified, o.currency, o.currency_value, s.orders_status_name, ot.text as order_total from " . TABLE_ORDERS . " o left join " . TABLE_ORDERS_TOTAL . " ot on (o.orders_id = ot.orders_id), " . TABLE_ORDERS_STATUS . " s where o.orders_status = s.orders_status_id and s.language_id = '" . (int)$languages_id . "' and ot.class = 'ot_total' order by o.orders_id DESC"; } Add o.delivery_postcode to all queries. Then in the table section: <td class="dataTableContent"><?php echo '<a href="' . tep_href_link('orders.php', tep_get_all_get_params(array('oID', 'action')) . 'oID=' . $orders['orders_id'] . '&action=edit') . '">' . tep_image('images/icons/preview.gif', ICON_PREVIEW) . '</a>&nbsp;' . $orders['customers_name']; ?></td> <td class="dataTableContent" align="right"><?php echo strip_tags($orders['order_total']); ?></td> <td class="dataTableContent" align="center"><?php echo tep_datetime_short($orders['date_purchased']); ?></td> <td class="dataTableContent" align="right"><?php echo $orders['orders_status_name']; ?></td> <td class="dataTableContent" align="right"><?php if (isset($oInfo) && is_object($oInfo) && ($orders['orders_id'] == $oInfo->orders_id)) { echo tep_image('images/icon_arrow_right.gif', ''); } else { echo '<a href="' . tep_href_link('orders.php', tep_get_all_get_params(array('oID')) . 'oID=' . $orders['orders_id']) . '">' . tep_image('images/icon_info.gif', IMAGE_ICON_INFO) . '</a>'; } ?>&nbsp;</td> add a new column with: $orders['delivery_postcode']. This should show it for each order. Add also a heading title in this section to align the table correct: <td class="dataTableHeadingContent"><?php echo TABLE_HEADING_CUSTOMERS; ?></td> <td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_ORDER_TOTAL; ?></td> <td class="dataTableHeadingContent" align="center"><?php echo TABLE_HEADING_DATE_PURCHASED; ?></td> <td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_STATUS; ?></td> <td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_ACTION; ?>&nbsp;</td>
  10. @Ken_Shea, Here is the prodcut link module: @burt, if you wish to add it to core, the old sample product links would need to have "http:// " or "https://" added in the install sql. Product_info_product_link.zip
  11. New version uploaded: Related Products 6.6 BS - Supressed any html output if no related products are available. Thanks to @Smoky Barnable for the advice - conditioned <hr> tag if content is shown below. Thanks to @Smoky Barnable for the advice - updated template call and naming to FROZEN standard - changed module class names to match FROZEN standard - included references for CE FROZEN to instructions
  12. there is no <modal-body> tag to find in all your files or instructions. But if you are happier, I will not post any more, in my opinion, constructive feedback on your add-ons. I promise. Have a nice day.
  13. <!-- Modal content--> <div class="panel-body text-left"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal">&times;</button> <h4 class="modal-title">About Us</h4> </div> <div class="modal-body"> <body> <!-- Place your About us text below this--> And I'll go to have a coffee now, I don't drink beer 😅
  14. <body> tag is incorrect it should be <modal-body> more than one <body> tag in a html page throws html validation errors. https://www.w3schools.com/bootstrap/bootstrap_modal.asp Viewing the html source of your demo stores, it seems you have the same error in all your modal add-ons.
  15. New version uploaded: Discount Codes 4.4.2 BS Version 4.4.2 BS: Fixed support for paypal standard discount order count. Thanks to @sinopia for the report and testing. Added support for paypal standard ipn discount order count Fixed error for order total discount if "Base discount tax on prices excl." was set to "true" and "Display prices with tax" was set to "true". Version 4.4.1 BS: (unreleased version) Fix for discount formatting if other than default currency is used. Thanks to @mattsc for the report and testing.
  16. raiwa

    VAT; net = gross

    OK, lets check the following: - In admin : Locations/Taxes: Tax Classes : You have a tax class called "VAT high" - In admin : Locations/Taxes: Tax Rates: You have a tax rate with the tax class "VAT high" assigned, the % rate entered and the tax zone selected "Netherlands" or "EU" or whatever your tax zone name is (see next point) - In admin : Locations/Taxes: Tax Zones: You have a tax zone called "Netherlands" or "EU" or whatever, which you use in the before point. Inside the tax zone you have at least Netherlands added as country with all zones included. Another question: does your tax setup work on the public store side, I mean, do you get the tax added to the prices there?
  17. raiwa

    google sitemap with multiple language

    Hello @ken0306, Ultimate SEO URLs for BS includes hreflang tags support and a hreflang header tag module: Ultimate Seo Urls 5 for Responsive Oscom
  18. That's not real Guest checkout. A customer account will be created from the PayPal Account data and left in the store. It's not available for other payment methods. PWA Guest Checkout contribution: Purchase without account BS
  19. raiwa

    VAT; net = gross

    - Did you select the tax class when you edit the product: Tax Class: VAT high ? - Is your store country Netherlands ?
  20. Tested under Windows local XAMPP PHP 7.29: New module works fine. I checked fixer on latest EDGE currency module update and it doesn't work neither. Error: The current subscription plan does not support this API endpoint, you may need to upgrade your plan. Meanwhile on the live store which is an older EDGE from 2017 it works fine. The coding used there is the following in admin/includes/functions/ localization.php: function quote_fixer_currency($to, $from = DEFAULT_CURRENCY) { if ($to == $from) return 1; $ch = curl_init('http://data.fixer.io/api/latest?access_key=MY_HARDCODED_ACCESS_KEY_HERE&base=' . $from . '&symbols=' . $to); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $data = curl_exec($ch); curl_close($ch); $currencies = json_decode($data, true); if (isset($currencies['rates'][$to])) { return $currencies['rates'][$to]; } else { return false; } } and in admin/currencies: case 'update': $server_used = CURRENCY_SERVER_PRIMARY; $currency_query = tep_db_query("select currencies_id, code, title from " . TABLE_CURRENCIES); while ($currency = tep_db_fetch_array($currency_query)) { $quote_function = 'quote_' . CURRENCY_SERVER_PRIMARY . '_currency'; $rate = $quote_function($currency['code']); if (empty($rate) && (tep_not_null(CURRENCY_SERVER_BACKUP))) { $messageStack->add_session(sprintf(WARNING_PRIMARY_SERVER_FAILED, CURRENCY_SERVER_PRIMARY, $currency['title'], $currency['code']), 'warning'); $quote_function = 'quote_' . CURRENCY_SERVER_BACKUP . '_currency'; $rate = $quote_function($currency['code']); $server_used = CURRENCY_SERVER_BACKUP; } if (tep_not_null($rate)) { tep_db_query("update " . TABLE_CURRENCIES . " set value = '" . $rate . "', last_updated = now() where currencies_id = '" . (int)$currency['currencies_id'] . "'"); $messageStack->add_session(sprintf(TEXT_INFO_CURRENCY_UPDATED, $currency['title'], $currency['code'], $server_used), 'success'); } else { $messageStack->add_session(sprintf(ERROR_CURRENCY_INVALID, $currency['title'], $currency['code'], $server_used), 'error'); } } tep_redirect(tep_href_link('currencies.php', 'page=' . $_GET['page'] . '&cID=' . $_GET['cID'])); break; and in admin/application_top.php: define('CURRENCY_SERVER_PRIMARY', 'fixer'); define('CURRENCY_SERVER_BACKUP', ''); EDIT: Same fixer API Key used in both cases.
  21. Fixer still works on live store with EUR base currency. Conversion to US$, GBP and CHF works flawless.
  22. Yes it works. I just wasn't patient enough to wait 30-60 seconds for the translation to appear until the bottom of the page 🙄 So it works, but I would not call it fine. What about the stores which have already real multilanguage implemented. They shall they add the Google translation only for your modules which are missing multilanguage support?
  23. It seems it doesn't work on mobile (Android). Some translations are just painfull: "View" gets in German translated to "Aussicht" which is used for a landscape view but never in the english sense of "View details, more". Movie titles may be totally different in other languages and often have nothing to do with the translation. Replace a well made human translation by Google translation may be possible in a few years but not now. It hurts my eyes.
  24. Try the following: - before the while loop define a counter: $i=0; - at the end of the while loop increase the counter: $i++; - at the beginning of the loop, condition a variable which holds xs helper class: if ($i > 2) { $xs_class = 'hidden-xs'; } else { $xs_class = ''; } add the variable to the product div: $featured_products_content .= ' <div class="col-sm-6 col-md-3 ' . $xs_class . '">'; This is for BS3. For BS 4 use the equivalent of "hidden-xs".
  25. It is possible to edit the language files in Admin. It is a core function, no add-on needed.. admin : tools : define languages -> click on file to edit. I just checked and found that on my local teststores under windows xampp it doesn't work. Maybe a permissions issue? But on unix server it works.