Jump to content

All Activity

This stream auto-updates     

  1. Past hour
  2. Hi all. I update ap page builder to 2.2.8 I fixed speed function we have to override cacheid function protected function getCacheId($hookName = null, $shortcode_key = null) { $cache_array = array(); //if call function from shortcode return cache of shortcode if ($shortcode_key) { $cache_array[] = 'shortcodekey_'.$shortcode_key; } else { //process nomal cache for each hook //create folder cache for each home by id or buy home name $cache_array[] = $this->profile_data['id_appagebuilder_profiles']; //set cache for each hook in profile $cache_array[] = $hookName; //kiem tra xem module confg if ($this->profile_param && isset($this->profile_param[$hookName]) && $this->profile_param[$hookName]) { $current_page = apPageHelper::getPageName(); $iscached = 0; //check cache in sub page if (($current_page == "category" || $current_page == 'product')) { if (isset($this->profile_param[$hookName]['nocategory'])) { if (in_array(Tools::getValue('id_category'), $this->profile_param[$hookName]['nocategory'])) { $cache_array[] = Tools::getValue('id_category'); $iscached = 1; } } if (isset($this->profile_param[$hookName]['nocategoryproduct'])) { if (in_array(Tools::getValue('id_category'), $this->profile_param[$hookName]['nocategoryproduct'])) { $cache_array[] = Tools::getValue('id_category'); $iscached = 1; } } if (!$iscached && $current_page == "category" && isset($this->profile_param[$hookName]['categoryproduct'])) { if (in_array(Tools::getValue('id_category'), $this->profile_param[$hookName]['categoryproduct'])) { $cache_array[] = Tools::getValue('id_category'); $iscached = 1; } } if (!$iscached && $current_page == "category" && isset($this->profile_param[$hookName]['categoryproductmain'])) { if (in_array(Tools::getValue('id_category'), $this->profile_param[$hookName]['categoryproductmain'])) { $cache_array[] = Tools::getValue('id_category'); $iscached = 1; } } //product in no category if (!$iscached && $current_page == "product" && isset($this->profile_param[$hookName]['nocategoryproduct'])) { $procate = Product::getProductCategoriesFull(Tools::getValue('id_product')); $procheck = 0; foreach ($procate as $proc) { if (in_array($proc['id_category'], $this->profile_param[$hookName]['nocategoryproduct'])) { $procheck = 1; } } if ($procheck == 1) { $cache_array[] = 'product_'.Tools::getValue('id_product'); $iscached = 1; } } //product in category if (!$iscached && $current_page == "product" && isset($this->profile_param[$hookName]['categoryproduct'])) { $procate = Product::getProductCategoriesFull(Tools::getValue('id_product')); $procheck = 0; foreach ($procate as $proc) { if (in_array($proc['id_category'], $this->profile_param[$hookName]['categoryproduct'])) { $procheck = 1; } } if ($procheck == 1) { $cache_array[] = 'product_'.Tools::getValue('id_product'); $iscached = 1; } } //product in main category if (!$iscached && $current_page == "product" && isset($this->profile_param[$hookName]['categoryproduct'])) { $procate = new Product(Tools::getValue('id_product')); if (in_array($procate['id_category_default'], $this->profile_param[$hookName]['categoryproduct'])) { $cache_array[] = 'product_'.Tools::getValue('id_product'); $iscached = 1; } } } //cache big page if (!$iscached && isset($this->profile_param[$hookName][$current_page])) { $cache_array[] = $current_page; $iscached = 1; } //cache big page not show if (!$iscached && isset($this->profile_param[$hookName]['exception']) && in_array($cache_array, $this->profile_param[$hookName]['exception'])) { //show but not in controller $cache_array[] = $current_page; $iscached = 1; } //random in product carousel if (isset($this->profile_param[$hookName]['productCarousel'])) { $random = round(rand(1, max(Configuration::get('APPAGEBUILDER_PRODUCT_MAX_RANDOM'), 1))); $cache_array[] = "p_carousel_$random"; } if (isset($this->profile_param[$hookName][$current_page])) { $cache_array[] = $current_page; if ($current_page != 'index' && $cache_id = ApPageSetting::getControllerId($current_page, $this->profile_param[$hookName][$current_page])) { $cache_array[] = $cache_id; } } else if (isset($this->profile_param[$hookName]['nocategory']) || isset($this->profile_param[$hookName]['categoryproduct'])) { if (in_array(Tools::getValue('id_category'), $this->profile_param[$hookName]['nocategory'])) { $cache_array[] = Tools::getValue('id_category'); } } else if (isset($this->profile_param[$hookName]['categoryproduct']) && ($current_page == "category" || $current_page == 'product')) { if ($current_page == 'category') { if (!ApPageSetting::getControllerId($current_page, $this->profile_param[$hookName]['categoryproduct'])) { $cache_array[] = Tools::getValue('id_category'); } } else { $procate = Product::getProductCategoriesFull(Tools::getValue('id_product')); $procheck = 0; foreach ($procate as $proc) { if (in_array($proc['id_category'], $this->profile_param[$hookName]['categoryproduct'])) { $procheck = 1; } } if ($procheck == 0) { $cache_array[] = Tools::getValue('id_product'); } } } } if (Tools::getValue('plist_key')&& Tools::getIsset('leopanelchange')) { $cache_array[] = 'plist_key_'.Tools::getValue('plist_key'); } if (Tools::getValue('header') && Tools::getIsset('leopanelchange') && (in_array($hookName, ApPageSetting::getHook('header')) || $hookName == 'pagebuilderConfig|header')) { $cache_array[] = 'header_'.Tools::getValue('header'); } if (Tools::getValue('content')&& Tools::getIsset('leopanelchange') && (in_array($hookName, ApPageSetting::getHook('content')) || $hookName == 'pagebuilderConfig|content')) { $cache_array[] = 'content_'.Tools::getValue('content'); } if (Tools::getValue('product')&& Tools::getIsset('leopanelchange') && (in_array($hookName, ApPageSetting::getHook('product')) || $hookName == 'pagebuilderConfig|product')) { $cache_array[] = 'product_'.Tools::getValue('product'); } if (Tools::getValue('footer') && Tools::getIsset('leopanelchange') && (in_array($hookName, ApPageSetting::getHook('footer')) || $hookName == 'pagebuilderConfig|footer')) { $cache_array[] = 'footer_'.Tools::getValue('footer'); } } return parent::getCacheId().'|'.implode('|', $cache_array); } You can see, my module have function for landing page: - you can create landing page with my module with profile function, so in home page content hook will have diffirent content. - random product in carousel - you can create block for category and product only - other thing you can use shortcode. Many function in my module. currently, i can confirm we imporvement speed of module
  3. Today
  4. Hello, how do i change the color of the search widget (turquoise on my picture in the classic theme) when the search field is focus ? I found when it is hover but not on focus ... I can not find it Please help ! Thanks !
  5. So I have this code that, for some reason, happens to send repeated emails. Sometimes it sends out 2, other times 3, 4, 5 repeated emails at once for the very same customer, I simply don't know what's happening. I have already tried so many things and nothing seems to work out. Can someone figure out something here? private function cancelledCart($count = false) { $CemailControl = 0; $emailControl = 0; $email_logs = $this->getLogsEmail(1); $sql = 'SELECT c.id_cart, c.id_lang, cu.id_customer, c.id_shop, cu.firstname, cu.lastname, cu.email, ad.phone_mobile FROM '._DB_PREFIX_.'cart c LEFT JOIN '._DB_PREFIX_.'orders o ON (o.id_cart = c.id_cart) LEFT JOIN '._DB_PREFIX_.'order_history oh ON (oh.id_order = o.id_order) LEFT JOIN '._DB_PREFIX_.'address ad ON (c.id_customer = ad.id_customer) RIGHT JOIN '._DB_PREFIX_.'customer cu ON (cu.id_customer = c.id_customer) RIGHT JOIN '._DB_PREFIX_.'cart_product cp ON (cp.id_cart = c.id_cart) WHERE DATE_SUB(CURDATE(),INTERVAL 90 DAY) <= c.date_add AND o.valid = 0 AND oh.id_order_state = "6" AND cu.newsletter = 1'; $sql .= Shop::addSqlRestriction(Shop::SHARE_CUSTOMER, 'c'); if (!empty($email_logs)) $sql .= ' AND c.id_cart NOT IN ('.join(',', $email_logs).') GROUP BY cu.email'; $emails = Db::getInstance()->executeS($sql); $conf = Configuration::getMultiple(array('REMARKETING_AMOUNT_1', 'REMARKETING_DAYS_1', 'REMARKETING_ENABLE_11', 'REMARKETING_CUSTOMER_ID_1', 'REMARKETING_EMAIL_TYPE_MANUAL')); if ($conf['REMARKETING_ENABLE_11'] && $conf['REMARKETING_EMAIL_TYPE_MANUAL'] == 'cancelled') { $cids = $conf['REMARKETING_CUSTOMER_ID_1']; $sql = 'SELECT c.id_customer, c.firstname, c.lastname, c.email, c.id_lang, ad.phone_mobile FROM '._DB_PREFIX_.'customer c LEFT JOIN '._DB_PREFIX_.'address ad ON (c.id_customer = ad.id_customer) WHERE c.id_customer IN ('.$cids.')'; $customers = Db::getInstance()->executeS($sql); foreach ($customers as $customer) { if ($CemailControl !== $customer['email']) { $voucher = $this->createDiscount(1, (float)$conf['REMARKETING_AMOUNT_1'], (int)$customer['id_customer'], strftime('%Y-%m-%d', strtotime('+'.(int)$conf['REMARKETING_DAYS_1'].' day')), $this->l('Discount for cancelled orders')); if ($voucher !== false) { $CemailControl = $customer['email']; $baseURL = Context::getContext()->shop->getBaseURL(true); $template_vars = array( '{base_url}' => $baseURL, '{email}' => $customer['email'], '{lastname}' => $customer['lastname'], '{firstname}' => $customer['firstname'], '{amount}' => $conf['REMARKETING_AMOUNT_1'], '{days}' => $conf['REMARKETING_DAYS_1'], '{voucher_num}' => $voucher->code ); Mail::Send((int)$customer['id_lang'], 'remarketing_1', Mail::l('Discount coupon for your next order', (int)$customer['id_lang']), $template_vars, $customer['email'], $customer['firstname'].' '.$customer['lastname'], null, null, null, null, dirname(__FILE__).'/mails/'); if ((int)Configuration::get('REMARKETING_ENABLE_0') == '1' && $customer['phone_mobile'] != '') $this->send_message(Configuration::get('REMARKETING_SMS_COUNTRY_CODE').$customer['phone_mobile'], Tools::substr(Configuration::get('PS_SHOP_NAME'), 0, 40), sprintf($this->l('Use this coupon on your next order: %d'), $voucher->code)); } } } } if ($count || !count($emails)) return count($emails); foreach ($emails as $email) { if ($email['order_canceled'] == '6' && $emailControl !== $email['email']) { $emailControl = $email['email']; $voucher = $this->createDiscount(1, (float)$conf['REMARKETING_AMOUNT_1'], (int)$email['id_customer'], strftime('%Y-%m-%d', strtotime('+'.(int)$conf['REMARKETING_DAYS_1'].' day')), $this->l('Discount for cancelled orders')); if ($voucher !== false) { $baseURL = Context::getContext()->shop->getBaseURL(true); $template_vars = array( '{base_url}' => $baseURL, '{email}' => $email['email'], '{lastname}' => $email['lastname'], '{firstname}' => $email['firstname'], '{amount}' => $conf['REMARKETING_AMOUNT_1'], '{days}' => $conf['REMARKETING_DAYS_1'], '{voucher_num}' => $voucher->code ); Mail::Send((int)$email['id_lang'], 'remarketing_1', Mail::l('Discount coupon for your next order', (int)$email['id_lang']), $template_vars, $email['email'], $email['firstname'].' '.$email['lastname'], null, null, null, null, dirname(__FILE__).'/mails/'); $this->logEmail(1, (int)$voucher->id, (int)$email['id_customer'], (int)$email['id_cart'], 0); if ((int)Configuration::get('REMARKETING_ENABLE_0') == '1' && $email['phone_mobile'] != '') $this->send_message(Configuration::get('REMARKETING_SMS_COUNTRY_CODE').$email['phone_mobile'], Tools::substr(Configuration::get('PS_SHOP_NAME'), 0, 40), sprintf($this->l('Use this coupon on your next order: %d'), $voucher->code)); } } } } Thank you in advance for any help given.
  6. We are leaving PS for Shopify due to all the issues. We have lost so much business over the issues, we have no choice.
  7. Yesterday
  8. Bonjour, Sous prestashop, je n'arrive pas à installer le module ni provenant de github, ni par les addons avec ceci dans .user.ini : max_input_time=300 max_execution_time=300 upload_max_filesize = 10M post_max_size = 10M j'ai toujours la réponse json suivante dans le debug de firefox: {"status":false,"msg":"L\u0027installation du module psgdpr a \u00e9chou\u00e9. Le module n\u0027est pas valide et ne peut pas \u00eatre charg\u00e9.","module_name":"psgdpr"} En le décompressant directement dans le dossier /modules, erreur similaire: prestashop ne l'affiche pas dans la liste des modules désactivés. quid svp ?
  9. Oczywiście, że nie. Póki klient nie zapłaci póty nie ma zawarcie umowy. Ergo, póki klient nie zapłacie póty może złożyć 1000 zamówień i żadne nie rozpocznie realizacji póki za któreś zapłaci.
  10. Naja .. mal abgesehen das Du pagespeed am laufen hast und somit die Fehleranalyse fast ein Ding der Unmöglichkeit ist kann ich Dir nur bestätigen das weder ppplus noch amazon pay beim IE angeboten wird. Dazu hast Du wahrscheinlich bei einigen mobile devices das gleche Problem. Amazon Pay wird sogar explizit ausgeblendet <style>#payWithAmazonListDiv,.amzPayments,#payWithAmazonDiv{display:none!important}</style> also alles nur eine wage Vermutung und keine konkrete Fehleranalyse. Da Du wahrscheinlich Leo oder ZOne am laufen hast (sparen != speichern). Solltest Du mal prüfen wie es mit dem Rechtssicherheitsmodul Modul aussieht, der Hook payment und paymentEU läuft bei Dir nicht rund bzw. wird bei Dir wahrscheinlich payment und nicht paymanet EU verwendet, noch dazu ist damit die Rechtssicherheit natürlich nicht gegeben. Abgesehen davon das dein Bestellprozess nur etwas für geduldige ist, 2x Checkbox usw.... Solltest Du aber auch an der CR spüren. Check deine Hooks, deaktiviere pagespeed, schau in der JS Console ob Du einen Fehler bekommst.
  11. Danke, habe auch gleich die eine Texte per FTP von Englisch auf deutsch gestellt und paar Änderungen in den Texten in der Datenbank angepasst. Jetzt passt es.
  12. Da ich nur IE11 (Windows 10) habe, habe ich es damit selbstverständlich getestet und hatte genau die selben Probleme.
  13. Es wäre halt hilfreich, wenn man erst einmal wüßte, bei welcher/n Version/en des IE das Problem auftritt (ggf. auch auf welchem Betriebssystem). Es wird kaum jemand Lust haben, erst einmal den ganzen Bestellprozeß bei dir testweise zu durchlaufen, um dann vielleicht festzustellen, daß mit seiner IE-Version das Problem gar nicht besteht. Hast du selbst es denn einmal probiert?
  14. Il server non ha versioni software ma un sistema operativo. Apache e di fatto il web server. Php e mysql non le ritengo versioni adatte. Usa la 7.1 e mysql 5.7
  15. Mi associo a @caygri e non sono laureato....detto questo anche se non ho seguito un percorso scolastico ho studiato e studio tutti i giorni cose che non capirai nemneno fra 20 anni. Purtroppo in questo cesso di posto dove vivo,spero ancora per poco, quelli come me sono gli autodidatta e quelli come @caygri sono venerati perché hanno il pezzo di carta e spesso le conoscenze ingegneristiche sono le stesse. Ognuno fa il suo percorso ma c'e differenza tra chi lo fa per professione e lo smanettone. A ragione a dire che crasha a breve non e un lavoro da fare tanto più se ci campi Oggi c'e Google....quando ho iniziato io il primo server con NT era tutto A RIGA DI COMANDO e pochi lo hanno conosciuto e ho avuto il privilegio di averci a che fate perché se oggi avete tutto in un click e grazie a gente come noi....se avete il cms e grazie a tante persone che gratuitamente hanno messo insieme uno strumento come prestashop e altri cms GRATIS ma non vi basta. Non hai idea di cosa ce dietro e di chi ce dietro e ti assicuro che ho interi cms realizzati in asp dal sotto scritto che non ha visto un centesimo e se volevo imparare e farmi strada o così oppure c'erano altri 100 pronti a prendere posto. Lascia perdere compare.....buon per te che ai risolto....presto sarai di nuovo qui ad accusare gli sviluppatori di bug su uno strumento gratis che ti fa guadagnare e ancora gratis vuoi le procedure.... Appoggio @caygri al 100%....
  16. Ja, es gibt für Prestashop Marktplatz-Module, hier im Forum (zumindest im deutschsprachigen Bereich) wirst du dazu aber eher wenig Hilfe erwarten können, zu Kaufmodulen sollte vorrangig der Anbieter kontaktiert werden.
  17. Hi! Need your help folks. How can I disable left column on product list page as marked in attached screen shot.
  18. Die E-Mail-Texte finden sich in den Shopdateien im Ordner mails bzw. im BackOffice im Bereich Übersetzungen.
  19. Zunächst einmal der Hinweis, daß sich dein Thread in einem vollkommen unpassenden Forumsbereich befindet, lies mal die Info dazu! Eine Prestashop-Version 1.6.17 gibt es nicht, du meinst wahrscheinlich Mir ist nicht ganz klar, warum du den kostenlosen Versand ab 700 € innerhalb Deutschlands über die Warenkorbregeln steuerst und nicht über die Versandarten. Auslesen kannst du das Land, in das der Versand erfolgen soll nicht, da das ja nicht mit dem Land, aus dem der Kunde die Seite aufruft, identisch sein muß. Möglich wäre ein Hinweis "Versandkosten innerhalb Deutschlands*" / "* - Für Lieferungen ins Ausland fallen höhere Versandkosten an." (verlinkt zur Versandkostenübersicht), müßte dann aber um eine if-Bedingung gekoppelt werden, damit der Hinweis nur bei nicht angemeldeten Kunden angezeigt wird.
  20. Moduły rezerwacji są dostępne np: https://addons.prestashop.com/pl/dodatkowe-informacje-zakladka-produktu/46673-product-reservation.html
  21. Ciao io ho il data set con i dati , mi interessa il discorso del modulo
  22. Que tal. Espero alguien me pueda ayudar con esto. Estoy tratando de agregar una funcionalidad a la plantilla del carrito de compra del backoffice. He visto que en el directorio "src/PrestashopBundle/" se encuentran algunas de las plantillas del back office, pero no se cual es la que controla el carrito de compra. La plantilla que quiero editar es la que esta en "Pedidos -> Carritos de compra -> Carrito especifico". Gracias de antemano por la ayuda.
  23. Depuis cette semaine le processus de commande se bloque dès que l'on coche Mondial Relay dans le choix Transporteurs. Je suis repassé du PHP 7 à PHP 5.6, sachant que le module MR connait quelques ratés avec Php 7. Mais rien ne change en réinitialisant le module, ni même en le supprimant et en le re-téléchargeant. D'autres personnes ont elles ces déconvenues?
  24. Deine Tipps waren SUPER! Ja, Du hattest Recht - es lag an einem fremden Modul! (Modul ybc_blog). Vielen Dank
  25. aprire il link in firma è difficile?😆
  1. Load more activity
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More