close ad
 
Important WebAssist Announcement
open ad
View Menu

Technical Support Forums

Free, outstanding support from WebAssist and your colleagues

rating

Disable Add to Cart button based on time

Thread began 10/19/2009 11:32 am by Rich Petersen | Last modified 10/26/2009 3:44 pm by Rich Petersen | 2202 views | 5 replies |

Rich Petersen

Disable Add to Cart button based on time

Hello!!

I want to prevent a customer from buying a specific item after a certain time of day.

For instance, this site delivers items by 10am. So they don't want anyone purchasing anything after 9am for that days' shopping item.

I have the database constructed in such a way that I can isolate the items that need to be disabled, but I'm trying to figure out how to best disable the button.

I have some code that keeps track of the time, so I can trigger an action based on that, I just need to figure out what action to do. I can disable in the database, but would rather just disable the buy button.

Any ideas?

Thanks!!

Sign in to reply to this post

Eric Mittman

You could implement a server side validation that just does the check when you submit the form for the add to cart. You could also use an if statement to say:

if the current time is later than the cutoff time then
display your message
else
display your add to cart button

This is just high level of how you could do this, there are other ways you could implement this as well. I think having some sort of validation that does the check in addition to hiding the button would be the best bet in case the user submits the form some other way.

Sign in to reply to this post

Rich Petersen

Excellent, thanks.....that makes sense...

Sign in to reply to this post

Rich Petersen

Ok, this is just to post the solution in case someone searches on this topic.

Here is the code for where the button is placed:


<?php
if (Date('d M Y', $mon) < Date('d M Y'))
echo "Sorry no more orders for today";
elseif (Date('d M Y', $mon) > Date('d M Y'))
echo '<input type="image" src="WA_eCart/Images/Pacifica/Btn3_EN_addtocart.gif" border="0" value="Add to Cart" name="teacherslunchbox_21_ATC" >';

elseif (Date('d M Y', $mon) == Date('d M Y'))
if (Date("Hi") + 300 < "900")
echo '<input type="image" src="WA_eCart/Images/Pacifica/Btn3_EN_addtocart.gif" border="0" value="Add to Cart" name="teacherslunchbox_21_ATC" >';

else
echo "Sorry no more orders for today";
?>


The page has two weeks worth of possible orders fed by a database.

$mon holds a date that could be in the future or the past. I get this date from script at the beginning of the page by using this script (repeating and tweaking it to get each day's date for the two week period so I have a $mon, $mon2, $tues, $tues2, etc)

<?php
$tod=date("N")-1;
$mon=strtotime('-'.$tod.' days');
?>

So for example, if today is Wed, it could be Mon previous to today, or the Mon coming up. So first I see if Monday is before today (which means they can't order on a past date) so I echo "sorry, blah blah"

Then if that date is in the future, I place the button.

If the date happens to be TODAY, and it's before 9am, then place the button

If it's TODAY but past 9am, echo "sorry, blah blah" since it's too late to order and get it in time for lunch (it's a sandwich shop)

I'm a beginner PHP person, so if this is hokey, I'd appreciate any tweaks. However, it seems to work fine and I wanted to get it out there in the forum in case someone else can use it.

Thanks all,
Rich

Sign in to reply to this post

Eric Mittman

Nice use of the php date and time functions, they are pretty handy for this type of stuff. All looks good to me if you are getting the result you are hoping for I would say this is a success. I think this will definitely benefit other users that are looking into this type of feature.

Sign in to reply to this post

Rich Petersen

Just a code update. Had to wrap the dates being compared with a strtotime function:

<?php
if (strtotime(Date('d M Y', $mon)) < strtotime(Date('d M Y')))
echo "Sorry no more orders for today";
elseif (strtotime(Date('d M Y', $mon)) > strtotime(Date('d M Y')))
echo '<input type="image" src="WA_eCart/Images/Pacifica/Btn3_EN_addtocart.gif" border="0" value="Add to Cart" name="teacherslunchbox_21_ATC" >';

elseif (strtotime(Date('d M Y', $mon)) == strtotime(Date('d M Y')))
if (Date("Hi") + 300 < "900")
echo '<input type="image" src="WA_eCart/Images/Pacifica/Btn3_EN_addtocart.gif" border="0" value="Add to Cart" name="teacherslunchbox_21_ATC" >';

else
echo "Sorry no more orders for today";
?>

Sign in to reply to this post

Build websites with a little help from your friends

Your friends over here at WebAssist! These Dreamweaver extensions will assist you in building unlimited, custom websites.

Build websites from already-built web applications

These out-of-the-box solutions provide you proven, tested applications that can be up and running now.  Build a store, a gallery, or a web-based email solution.

Want your website pre-built and hosted?

Close Windowclose

Rate your experience or provide feedback on this page

Account or customer service questions?
Please user our contact form.

Need technical support?
Please visit support to ask a question

Content

rating

Layout

rating

Ease of use

rating

security code refresh image

We do not respond to comments submitted from this page directly, but we do read and analyze any feedback and will use it to help make your experience better in the future.

Close Windowclose

We were unable to retrieve the attached file

Close Windowclose

Attach and remove files

add attachmentAdd attachment
Close Windowclose

Enter the URL you would like to link to in your post

Close Windowclose

This is how you use right click RTF editing

Enable right click RTF editing option allows you to add html markup into your tutorial such as images, bulleted lists, files and more...

-- click to close --

Uploading file...