Jump to content

Recommended Posts

@@dinopacha

 

Hi Will

Let's start with the message problem. You want to show a message when a product has been added to the shopping cart.

catalog/includes/application_top.php

FIND

//Wishlist actions (must be before shopping cart actions)
  if (isset($HTTP_POST_VARS['wishlist'])) {
      if (isset($HTTP_POST_VARS['products_id']) && is_numeric($HTTP_POST_VARS['products_id'])) {
      $attributes = isset($HTTP_POST_VARS['id']) ? $HTTP_POST_VARS['id'] : '';
      $wishList->add_wishlist($HTTP_POST_VARS['products_id'], $wishList->get_quantity(tep_get_uprid($HTTP_POST_VARS['products_id'], $attributes))+1, $attributes);
      }
        if (WISHLIST_REDIRECT ==  'No') tep_redirect(tep_href_link('product_info.php', 'products_id=' . $HTTP_POST_VARS['products_id']));
      tep_redirect(tep_href_link('wishlist.php'));
  }
// EOF WISHLIST

REPLACE WITH

//Wishlist actions (must be before shopping cart actions)
  if (isset($HTTP_POST_VARS['wishlist'])) {
      if (isset($HTTP_POST_VARS['products_id']) && is_numeric($HTTP_POST_VARS['products_id'])) {
      $attributes = isset($HTTP_POST_VARS['id']) ? $HTTP_POST_VARS['id'] : '';
      $wishList->add_wishlist($HTTP_POST_VARS['products_id'], $wishList->get_quantity(tep_get_uprid($HTTP_POST_VARS['products_id'], $attributes))+1, $attributes);
      $messageStack->add_session('product_action', sprintf(PRODUCT_ADDED_WISHLIST, tep_get_products_name((int)$HTTP_GET_VARS['products_id'])), 'success'); // this is the code for the message
      }
        if (WISHLIST_REDIRECT ==  'No') tep_redirect(tep_href_link('product_info.php', 'products_id=' . $HTTP_POST_VARS['products_id']));
      tep_redirect(tep_href_link('wishlist.php'));
  }
// EOF WISHLIST

then open your english.php

FIND

define('HEADER_ACCOUNT_WISHLIST', 'My Wish List');
// EOF WISHLIST

REPLACE WITH

define('HEADER_ACCOUNT_WISHLIST', 'My Wish List');
define('PRODUCT_ADDED_WISHLIST', '%s has been added to your Wishlist');
// EOF WISHLIST

That's it for the message problem. Now you should see a success message when a product is added to the wish list.

Regarding your second problem, this is something you created, custom and not part of the Addon.
Lucky for you I have something like that in my shop so I will show you a sample code and you just do what you want with it. ;) :D

First let's open the catalog/includes/modules/content/navigation/cm_navbar.php

add $wishList to the globals

 

Example:

function execute() {
      global ..... <- add here inside!
      
Save and close. Next open the catalog/includes/modules/content/navigation/templates/navbar.php file and look for this code

<?php echo '<li><a href="' . tep_href_link(FILENAME_REVIEWS) . '">' . HEADER_REVIEWS . '</a></li>'; ?>

ADD AFTER IT

<?php
$counter = $wishList->count_contents();
echo '<li><a href="' . tep_href_link('wishlist.php') . '"><i class="fa fa-heart"></i> ' . HEADER_ACCOUNT_WISHLIST . ' (' . $counter . ')' . '</a></li>';
?>

That's it.

 

Share this post


Link to post
Share on other sites

@@Tsimi

 

Hello Lambros,

 

I have a small question about code below.

application_top.php

$messageStack->add_session('product_action', sprintf(PRODUCT_ADDED_WISHLIST, tep_get_products_name((int)$HTTP_GET_VARS['products_id'])), 'success'); // this is the code for the message

I want to change the success to another (.class) (.test)

I have try the following but it don't work.

$messageStack->add_session('product_action', sprintf(PRODUCT_ADDED_WISHLIST, tep_get_products_name((int)$HTTP_GET_VARS['products_id'])), 'success, test');

what am I doing wrong? <_<

 

Share this post


Link to post
Share on other sites

@@dinopacha

 

Hi Will

 

You cannot add a class like that, you have to change the ../classes/message_stack.php file.

For example;

 

FIND

} elseif ($type == 'success') {
  $this->messages[] = array('params' => 'class="alert alert-success alert-dismissible"', 'class' => $class, 'text' => $message);
} else {

REPLACE WITH

} elseif ($type == 'success') {
  $this->messages[] = array('params' => 'class="alert alert-success alert-dismissible"', 'class' => $class, 'text' => $message);
} elseif ($type == 'test') {
  $this->messages[] = array('params' => 'class="test"', 'class' => $class, 'text' => $message);
} else {

then use this inside the application_top.php

$messageStack->add_session('product_action', sprintf(PRODUCT_ADDED_WISHLIST, tep_get_products_name((int)$HTTP_GET_VARS['products_id'])), 'test');

Then add the new class definitions to your user.css

.test {
 *YOUR DEFINITIONS HERE*
}

of course you can name the $type and class anything you want.

Edited by Tsimi

Share this post


Link to post
Share on other sites

@@Tsimi

 

Hi Lambros,

it is indeed very different than I thought.

thank you, I have again learned something from you.

I appreciate it very much.

Share this post


Link to post
Share on other sites

@@Tsimi

 

Hi Lambros

 

Im pretty sure I have the latest version installed,

should there be a button in the admin area where customers Wishlists can be deleted, I have several old wishlists which  would like to delete.

 

Many thanks

 

Cheers

 

grandpa

Share this post


Link to post
Share on other sites

@@grandpaj

 

Hi John

 

If you can see the wishlists in the Report Section of your admin then you don't have the latest version. In the latest version that feature was removed.

You don't have to upgrade or anything so just keep everything as is if it works fine for you.

You cannot delete the wishlists as admin of the shop. Only the customer can remove products from it. What you can do if you 100% know that the wishlist is old is delete the database entries.

Make sure you know the customer_id first then go to your database and look for the table customers_wishlist there you should see all products that are currently in somebodies wishlist.

Now look at the customer_id, mark them and delete. If the wishlist contains products with attributes then you will have to delete also the entries inside the customers_wishlist_attributes table. Same story there, check for the right customer_id and delete the single entries.

 

Backup your database before doing this just in case.

Edited by Tsimi

Share this post


Link to post
Share on other sites

@@Tsimi

 

Hi Lambros

 

Thanks for your reply. I was sure I had the latest version, anyway it works, so may upgrade in due course.

Thought it might be a DB exercise.

 

Many thanks

 

John

Share this post


Link to post
Share on other sites

@@Tsimi

 

Hi Lambros

 

Just updating.

I notice in the preamble it says ...."changes to reports.php are not necessary anymore"...

I have gone thru (carefully I thought) but "Wishlists" still shows under the "Reports" in Admin ( although there is nothing in the includes>boxes> reports.php file) Maybe this is now called from somewhere else.

Perhaps I have misunderstood the preamble.

 

Cheers

 

John

Share this post


Link to post
Share on other sites

@@grandpaj

 

Ah yes. This is not inside the reports.php that is a separate file named reports_content.php.

Delete the following files from the admin section.

 

catalog/admin/includes/boxes/reports_content.php

catalog/admin/stats_wishlists.php

catalog/admin/wishlist_public.php

Share this post


Link to post
Share on other sites

Hello,

I have the addon Wish List revision 4 for osCommerce 2.3 installed on my osc2.3.4
But when I click the Add to wishlist button in my product_info page, it redirect me the wishlist page without adding the product to the list.

Any idea what could it be ?

Thank you

Share this post


Link to post
Share on other sites

@@Psytanium

 

It has been quite awhile since I installed this but it sounds like the code that needs to be added to application_top.php is missing or perhaps in the wrong spot...could that be it?

 

Dan

Share this post


Link to post
Share on other sites

@@Dan Cole, i tried to diagnose the file application_top.php without success, anyway, i ended by removing the plugin because I'm going to install SPPC addon and it's going to require some additional work with Wishlist. Thanks anyway :)

Share this post


Link to post
Share on other sites

Greetings!

Thanks for porting this contrib to BS! I've installed this version:

 

http://addons.oscommerce.com/info/9313 from May 15th 2015

 

On my 2.34 BS Gold install and everything appears to work BUT for the wishlist.php and wishlist_public.php pages which are served blank.

 

So, if I have things setup not to go to the wishlist page after adding an item, I can see it pop-up in the wish list box. But going to the wishlist.php or wishlist_public.php doesn't work, just a blank page with no source at all.

 

What sort of problem is this likely to be?

 

I've replaced those 2 files with the originals from the package, to be sure it wasn't a modification I may have made.
I've removed and reinstalled the 3 components in the osC admin panel to get it to do it's SQL clean up.

 

Any idea? next step is a full uninstall and re-install...

Edited by cinolas

Share this post


Link to post
Share on other sites

@@cinolas

 

Hi Nicolas

 

I just did a clean install on a brand new osC GOLD shop and all works fine here.

The only thing I can think of at this moment is the code inside the application_top.php.

Check Step 6 again where it says

 

FIND AROUND LINE 317 :

// Shopping cart actions

Directly above that code ADD this :

// BOF WISHLIST
// wishlist data
    if (!tep_session_is_registered('wishList') || !is_object($wishList)) {
        tep_session_register('wishList');
        $wishList = new wishlist;
    }
    
//Wishlist actions (must be before shopping cart actions)
  if (isset($HTTP_POST_VARS['wishlist'])) {
      if (isset($HTTP_POST_VARS['products_id']) && is_numeric($HTTP_POST_VARS['products_id'])) {
      $attributes = isset($HTTP_POST_VARS['id']) ? $HTTP_POST_VARS['id'] : '';
      $wishList->add_wishlist($HTTP_POST_VARS['products_id'], $wishList->get_quantity(tep_get_uprid($HTTP_POST_VARS['products_id'], $attributes))+1, $attributes);
      }
        if (WISHLIST_REDIRECT ==  'No') tep_redirect(tep_href_link('product_info.php', 'products_id=' . $HTTP_POST_VARS['products_id']));
      tep_redirect(tep_href_link('wishlist.php'));
  }
// EOF WISHLIST

...and make sure that piece of code is placed above the // Shopping cart actions part.

You are using osC GOLD and not the EDGE version right?

Edited by Tsimi

Share this post


Link to post
Share on other sites

@@Tsimi

 

Thanks fro the quick reply! I re-installed from scratch, all the manual modifications were there proper, but after re-uploading all the files the problem went away... I'm guessing there may have been an ftp hiccup with one of the files. So, all good! Thanks for the quick support anyway :)

 

Cheers!

Share this post


Link to post
Share on other sites

Hello from Switzerland

 

Just setting up a new store on 2.3.4 EDGE - quite successful as far with all add-ons and porting old data from my 2.2 MS store.

 

I installed the Wishlist BS 3.1 version which is ok, except for some changes I made with the $HTTP_POST_VARS to $_POST and the glyphicon glyphicon-xxx which is now the fa fa-xxx. So far so good.

 

Problem seems, that the old structure from "catalog/includes/modules/content/navigation/templates/navbar.php" is obsolete. I found the "FILENAME_ACCOUNT_PASSWORD" (step 8 in the manual) is now in 

"catalog/includes/modules/navbar_modules/templates/account.php". I added the code there and everything works. 
Except that even as a guest I am able to send the wishlist out - which I think should not be intended. 
I assume that because of the wishlist.php and the error messages I was translating to German.
 
if(tep_session_is_registered('customer_id')) { // logged in
			$customer_query = tep_db_query("select customers_firstname, customers_lastname, customers_email_address from customers where customers_id = '" . (int)$customer_id . "'");
	  	if (tep_db_num_rows($customer_query) != 1 ) tep_redirect(tep_href_link('logoff.php', '', 'SSL')); // invalid customer id

Seems to me, that the check is not done correctly, but have no clue, how to find a solution. Btw: I emptied the cache and the cookies and the items I had in the wishlist were gone - so the reset function works.

 

Any help would be appreciated

 

Kind regards -Felix


Whoever finds errors and misspellings in my postings can keep them  o:)

 

Moving from 2.2 MS to 2.3.4 BS EDGE - and I love this version!

 

I might show "online" all the time - but I might be away from my computer  ;)

Share this post


Link to post
Share on other sites

Hi Felix

 

It's been a while since I had a look at this addon but as far I can recall even a guest (no account) can send a wishlist to someone. The only difference is that the list doesn't get saved once he leaves the shop.

Again I am not 100% sure though.

I haven't update this addon for osC Edge yet. But if you could get it to work this far already that's great.

 

I will have time to look into it earliest Monday next week. Too busy at work at the moment, sorry.

 

Which version "exactly" did you use? The osC Bootstrap version or the regular 3.1?

Edited by Tsimi

Share this post


Link to post
Share on other sites

Hi Tsimi

 

No problem at all - thank you for your reply!

 

I have installed the latest BS version - ZIP says: Wishlist_BS_ver3.1_1_2 - I compared to the other file from the special BS add-on and they seem to be exactly the same. Just found out later reading this thread that you have made a new one for avoiding any confusion. But it is def. the BS version.

 

Yes - I am happy to understand each day a bit more of the programming and the complexity.

 

While checking again the above mentionned possibility: I see in the language files, that there is as well the guest message. Just as I am on a local XAMPP installation doing the whole set up, I am not able to test the mail function.

IMHO I don't know if it makes sense to allow a guest to send a wish list around. OK, access from exernal websites should be blocked, thus minimizing the possibility of SPAM being sent - on the other side, if someone - even a close friend of mine would send me a wish list I doubt, that I would buy anything form him/her that way.  

 

In terms of functionality: While reading through the wishlist_public.php I see all the checks beiing performed. Jet it is unclear to me, if the product once ordered by me for a friend gets deleted in his / her wishlist.

IMO the process should be the following:

 

Only registerd customer is allowed to send a wishlist.

Recipient of wishlist clicks on the link (now called friend)

Friend ends up in customers public wish list.

Decides to buy item for customer.

Item is placed in the shopping cart of friend.

Friend opens an account (or has already one).

In account the customers default shipping adress is automatically retrieved and friend has the option to send the item to customer directly or to his own address.

Friend can choose to have the item giftwraped (through add-on Giftwrapping Module).

Friend pays for the item.

Shop sends item to customer or friend depending on shipping address.

 

Thus just leaving open the discussion, if customers details should be revealed to friend in respect to data protection / privacy aspects. But if I would send someone a wish list I strongly assume, that they know my address details already...

 

Just my two cents.

 

Kind regards - Felix


Whoever finds errors and misspellings in my postings can keep them  o:)

 

Moving from 2.2 MS to 2.3.4 BS EDGE - and I love this version!

 

I might show "online" all the time - but I might be away from my computer  ;)

Share this post


Link to post
Share on other sites

For those of us working with limited stock for different reasons (eg second hand products or limited edition products), I observe the lack of a silly detail.

If the product has attributes and one of them is out, why you can not display a message warning him?

If I want to add an sold out product the system does not allow it and that is correct, but if before out I add it to the list and afterwards I want to buy it already out, there is no warning and the customer can take a disappointment.

On sites like eBay it works and I think solving this would help a lot of people, especially when that list is emailed.

 

I regret my bad English, I use an online translator that sometimes does not work well.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×