There is a patch on my site for that:
http://www.notgoddess.com/scripts/newsletter-subscribe
(click on the 'known issues' link or scroll to the bottom of the page).
-Ng_
Printable View
There is a patch on my site for that:
http://www.notgoddess.com/scripts/newsletter-subscribe
(click on the 'known issues' link or scroll to the bottom of the page).
-Ng_
My compliments! This is a very nice addition to my storefront. And while I was indeed terrified installing it, (fearing the worst) once in place it not only operated beautifully but there were literally no other major modifications because of it. Very well thought out.
The only comment I have is that in IE the font is quite tiny. Not so small as to be unusable but smaller then I'd like. Is there a fix for this? I realize that there is a lot of info in a very tight space and it may be unavoidable.
Again, congratulations on a well-made and well-designed product. :thumbsup:
First, thank you. :)Quote:
Originally Posted by beadedlily
The sidebox itself has no font styling-it is just following your stylesheet. The style that affects it is in your main stylesheet.css (line 51):The text is both sideBoxContent and a label (because it's a label for the email input). FF seems to parse this okay, but IE seems to apply the style 2x (once for each part), so you are getting a font-size of .8 x .8 em, or ~0.6em.Code:h4, h5, h6, label, h4.optionName, legend, address, .sideBoxContent, .larger
{
font-size: 0.8em;
}
You could try adding an overriding style specifically for labels inside sideboxes:(you may have to play around with the actual size setting to get it right)Code:.sideBoxContent label { font-size:1em !important;}
Also, since your sideboxes are so narrow, you may want to edit the sidebox template and adjust the width of the email input field. It usesby default, but you might want to change that 30 to something smaller, like 10, or change that entire calculation toCode:style="width: ' . ($column_width-30) . 'px"
-Ng_Code:style="width: 95%"
That did the trick - Keep up the good work!
Thank you so much for such a wonderful contribution.
I have noticed in the admin panel though, that upon initial subscription the status is set to N (newsletter only), rather than P (pending confirmation) - which is what I would expect it to be set as...
I haven't tried sending a test newsletter...so I'm not sure if this is an issue or not...
Thanks again for the wonderful module :D
Not likely an issue, more likely a typo. I'll look/correct it in the new release.Quote:
Originally Posted by woodlandsprite
-Ng_
Does the newsletter only subscription works fine with V1.3.0.2 ??
There are changes on core files:
audience.php
function_email.php
account_edit/header_php.php
Thanks
ERIC
oh excellent. Thanks :)Quote:
Originally Posted by NotGoddess
yes, so long as you do a file comparison you should be alright.Quote:
Originally Posted by ericpeng
I took a look at the changes using WinMerge, and they are in different areas, so there are no direct conflicts but you will want to merge the differences. I'll make sure the new release incorporates the patches.Quote:
Originally Posted by ericpeng
-Ng_
Quote:
Originally Posted by NotGoddess
Hi,
Thansks for your response.
I guess you're one of the people that always reply and this contribution is really great.
Thank you so much
ERIC
1062 error ... again.
1062 Duplicate entry '0' for key 1
in:
[insert into myshop_subscribers (email_address, email_format, subscribed_date, confirmed) VALUES ([email protected]', 'HTML', now(), 'TDYzLj')]
I know it is not really a problem from this module...... i think i got this from a common problem from exporting and importing sql data from one to another mysql server..with diff. server versions ( mine was 5.X --> 4.X )
how can i solve this?
This will fix that one table:Quote:
Originally Posted by kookiewookie
Remember to add your DB prefix if needed.Code:ALTER TABLE `subscribers` CHANGE `subscriber_id` `subscriber_id` INT( 11 ) NOT NULL AUTO_INCREMENT
It meants the auto_increment attribute was dropped from the table. If you chose export compatibility 4.0 you likely dropped the auto_increment value on all your tables-or it does that in mine.
I usually export as 5.0, then edit and change ENGINE to TYPE and edit out any 'charset' settings I might have (needless to say I export the structure and data separately or it takes forever to edit the structure file. :)
You'll want to check your other tables as well to see if any have the autoincrement value. If you fix it piecemeal you may miss some.
-Ng_
many many thanks for the fix! and the advice........ i have been mixing up things with the export settings.... just forgot about the old way, with this new export functions, and indeed just remove the char SET en ENGINE= TYPE....
This export comp. function gave me headache thanks for reminding me on the better export method.
Question for those wanting to import emails:
Do any of you have records that are not broken by newlines e.g.:
email,format|email,format
vs
email,format
email,format
If so I need to take a slightly different tack in the import function.
It's set up to take any delimiter (comma, | \t etc) and allows you to specify where in the record to pull the address/format from (in case you have other fields in there), but right now breaks records by newlines.
Anyone needing something more flexible?
Get back to me.
Danke,
-Ng_
Hi notgoddess,
I installed your patch for the wide box in IE thanks it works perfect! I take this oppertunity to bow to the goddess, I don't know how you do all of this with all those kids and a full time job. When I can I will donate because I think your greater than sliced bread. Thanks again!
has there been any fixes for this issue. i tried to send newsletter to 6000+ emails and if failed in both time.Quote:
Originally Posted by NotGoddess
now, i created groups thru the query_builder, grouped those 6000emails into 200s... every 200 at once...but still not sure if that will work or not ...
what # of emails do you think this script can handle ??
I haven't had a chance to look too far into it yet, sorry.
Right now I can suggest that you check your time limits...do a php info for:
max_execution_time (usually 30)
max_input_time (usually -1)
and see if you can set the execution time higher either with a php.ini or htaccess (not sure if you can set them in htaccess). The script already sets the time limit (set_time_limit) to 600 seconds, which should be more than long enough (it's not enabled if you are in safe mode tho), so it's possible one of the other settings is affecting it.
-Ng_
Another option is to use the Cart to get the emails, but export them and mail the newsletter from a mailing list program, like GroupMail (recommended by DrByte).
There's an email exporter in the downloads area that I've tested with subscriptions and since it lets you choose what email group to export you can grab all subscribers & not just customers. (Since that works so easily I won't be adding an exporter to the subscription manager and reinvent the wheel-I'll just do the importer).
-Ng_
max_execution_time Local value:60 Master value: 30
to be honest, i dont know how to create a php.ini file for that... (using shared hosting) and neither with htaccess...
do u have any guide...
i will research about GroupMail, i was also thinking of phpmail ...
geeee, i reinstalled the subscribtion, and now i forgot how i fixed the sidebox width issue... which file was that...
nevermind, took the patch file from ur site....Quote:
Originally Posted by chac416
now here's another problem after reinstalling the subscription and installing the subscription manager..
thats what i get when i click on Subscribtion manager in admin...
and this when i first opened the admin pageQuote:
1054 Unknown column 'confirmed' in 'field list'
in:
[select subscriber_id, customers_id, email_address, email_format, confirmed, subscribed_date from zen_subscribers order by email_address limit 0, 20]
If you were entering information, press the BACK button in your browser and re-check the information you had entered to be sure you left no blank fields.
Quote:
1054 Unknown column 'confirmed' in 'where clause'
in:
[select count(*) as count from zen_subscribers where confirmed= '1' or customers_id >= '1']
If you were entering information, press the BACK button in your browser and re-check the information you had entered to be sure you left no blank fields.
okay, i found our why, fields where missing from the database...
can someone look into his database and copy/paste for me the attributes of the following fields (confirmed, subscribed_date) thank u so much in advance :yes:
NG,
i have decided to use phplist for sending out my newsletter.
there's one thing i still want to do. i want my subscribers to unsubscribe using ur module not phplist.
i.e. link them back to the unsubscribe page on zencart... can you provide me with the link of the unsubscribe page... thanks lot,
You mean the 'unsubscribe from newsletter' link or the one that goes on the bottom of newsletters?
The former is an option in the cart config 'show newsletter unsubscribe link' (don't have an admin handy here to look up the exact page for you).
The latter, should be the same link, with the email changed to the subscriber's email (or none and they enter their email). It would look something like:
http://yoursite.com/yourstore/index....ge=unsubscribe
-Ng_
I installed the newsletter module and all seems good, except...I am testing the confirm subscription request...in the subscription management section it either says C or N, but never P (pending) when I have not yet responded to the confirm email (during testing).
Did I miss installing something? I think I have the newest version.
No you didn't miss anything. Someone else caught it a few posts back. It's fixed in the release coming tonight (in a couple hours...an evil wonderful friend surprised me with the new book from a fave author and I kinda had to read a couple chapters...or six so got delayed [but I told myself no more til this is done, so it will be quick.] :).
-Ng_
Okay folks, it's up. Apologies for the delay.
I've submitted it to the downloads section, but if there's a delay, you can grab it from my site: http://www.notgoddess.com/scripts/newsletter-subscribe
As ever I must stress - make backups before you install! :)
If you already have v2.0.2 installed, you should see an 'update' button instead of an install button.
This contrib uses the 'create table if not exists' syntax on the subscriber's table, and the 'replace' syntax for the various defines. If you have mysql 4.1+ you shouldn't have a problem. If you do, you'll have to peruse the file and update manually.
Report any issues and I'll get patches out asap.
...I did mention that you should backup first, right?
Enjoy.
-Ng_
Hi!
I have some strange problem with the unsubscribe action on the website.
When i click unsubcribe from newsletter and then the button Unsubscibe
it gives me the message that the emailadres below is unsubscibed....
I did not put in a e-mailadres that should be removed from the list....and offcourse there is no emailaddress showing.
Any idea on this one?
>>> oeps, maybe just have to install the updated version 2.03 , am using 2.02 now.
Do upgrade if you wish, but it's there in 2.0.3 too :) (I guess I should have put out a last call :)
If you edit the template/your_template/templates/tpl_unsubscribe_default.php and change line 14 from:
toCode:<?php if (!isset($_GET['action']) || ($_GET['action'] != 'unsubscribe')) { ?>
It will always show the "We're sorry you want to unsubscribe" text for blank emails.Code:<?php if (empty($unsubscribe_address) || ((!isset($_GET['action']) || ($_GET['action'] != 'unsubscribe')))) { ?>
The unsubscribe module is set so if a person enters a nonsense email it'll still tell them it's unsubscribed so people can't use it as a way to suss out emails. That's why it always repeats the email a person enters (in case they misspelled their email).
If people wish I can change that so it gives a 'invalid email' error message instead....3 votes gets it.
I also noted the sorting works wonderfully...until you try to click on a string to edit.
Then it's resetting to the default display.
Also, I'm not sure if it's a 'first record' issue or 'customer' issue but clicking on the first address to edit gives you a blank edit box.
I'll work on both of these tonight and get out a patch.
-Ng_
Thanks a lot! I'll do the first patch as suggested and would appreciate it a lot if you continue with the very fine contribution!!!
-NG - I'm running mysql 4.0.27 it seemsQuote:
Originally Posted by NotGoddess
So when I pressed "upgrade" it gave errors. Of course, stupidly I didn't record the errors...
I was upgrading from newsletter subscribe 202
I presume I can force the errors to appear again if I reupload all the admin files?
also, I did the line change above for tpl_unsubscribe_default.php
if I leave the email box blank and press unsubscribe I get re-dired to the login page...is this what was supposed to happen? Just checking :D
thanks!
Well I tried that and no upgrade button appeared...I hope I'm okay :PQuote:
Originally Posted by woodlandsprite
[quote]
also, I did the line change above for tpl_unsubscribe_default.php
if I leave the email box blank and press unsubscribe I get re-dired to the login page...is this what was supposed to happen? Just checking :D
[/quote
well, put it back to the original code, and the same thing happens. I note no difference between the original code vs
Code:
<?php if (empty($unsubscribe_address) || ((!isset($_GET['action']) || ($_GET['action'] != 'unsubscribe')))) { ?>
re: unsubscribe-I'll have to check into it. I may have made a change with the header as well. the redirect is supposed to happen under the 'basic' model because people have to be logged in to unsubscribe *normally*.
re the db errors.
I was probably the 'create table if not exists' syntax. Even tho the manual says this is supported by MySQL 3.23 onward, I've found it shakey at versions lower than 4.1. I guess I'll have to find another way to ensure the table exists (I know of a few but each has it's own drawbacks).
The main alteration of the update was to add the test groups/configuration values/email groups as outlined in the readme. If you have all those, you are okay.
If anyone is hesitant, just wait...I'll work on an alternative tonight/tomorrow and get the patch out on Friday. You can still put in the new files...just don't hit the 'update' button.
-Ng_
btw. Thank you to all who've reported issues...while I in one sense hate getting them :) I need to get any problems fixed asap.
I have found an issue - I am now receiving notices whenever a newsletter only subscrition is created. I have this set to 0 in admin-email options.
(and the email address to send notice to isnt defined - it's sending to my store owner default email)
Possibly a result of my database not updating properly?
:cry: is it too late for me? :P I'll go look at my db and see if I can decipher what is supposed to be there...Quote:
Originally Posted by NotGoddess
I suppose I can attempt a restore of my DB via phpmyadmin...
thank *you* for such a wonderful contrib. I just wish I was more savvy so I could debug too!Quote:
btw. Thank you to all who've reported issues...while I in one sense hate getting them :) I need to get any problems fixed asap.
No, it's not too late :) I just might have a little difficulty helping until late tonight (work). if you want, for now edit modules/pages/subscribe/header_php.php
I found an error that is probably the problem:
At the very bottom you'll see these lines:
change toCode:if(defined('NEWSONLY_SUBSCRIPTION_CC_STATUS') &&
defined('NEWSONLY_SUBSCRIPTION_CC') &&
NEWSONLY_SUBSCRIPTION_CC_STATUS != '') {
...and I changed my mind. I think, given this very very silly error on my part along with another earlier I've proven I shouldn't be doing a release at 2am.Code:if(defined('NEWSONLY_SUBSCRIPTION_CC_STATUS') &&
defined('NEWSONLY_SUBSCRIPTION_CC') &&
NEWSONLY_SUBSCRIPTION_CC_STATUS == 1 &&
NEWSONLY_SUBSCRIPTION_CC != '') {
I'll work on the patch, but will wait until tomorrow night to release so I can do it after a good night's rest. :)
-Ng_
NG - I checked my subscribers table in my db.Quote:
Originally Posted by NotGoddess
The columns I have in there are:
Subscriber ID
customers ID
email address
email format
confirmed
subscribed date
In admin->email options I do have the
-send notice of newsletter subscription only to status (which seems to not be working properly as mine is set to 0 and I am still getting notified of newsletter only subscriptions)
-send notice of newsletter only subscriptions to
-newsletter test group email
Under admin->tools->send email
even tho I have defined a newsletter test group email, there is no such item/address in the dropdown in the email tool.
lolQuote:
Originally Posted by NotGoddess
Boy I know what that's like! when I first started working on my cart, I worked on it until stupid stupid hours....way beyond the point of being productive!
looking forward to the patch :) (and hopefully the news also that my db is complete ;) )
NG:Quote:
Originally Posted by woodlandsprite
I went back, reinstalled my backup version of my database.
The error wasn't with the "if not exists"
The error is as follows:
1146 Table 'dbname.query_builder' doesn't exist in:
[INSERT INTO query_builder (query_category, query_name, query_description, query_string) VALUES ('email,newsletters', 'Email Test Group - Newsletter-only subscribers', 'Returns name and email address of Newsletter-only subscribers designated in Email test group configuration.', 'SELECT s.email_address as customers_email_address FROM TABLE_SUBSCRIBERS as s LEFT JOIN TABLE_CONFIGURATION as q on LOCATE( s.email_address, q.configuration_value) >= 1 WHERE configuration_key = ''NEWSONLY_SUBSCRIPTION_TEST_GROUP'' ') ]
Hope this helps you with the patch :)
Yes, actually it does.
Looks like on one (or more) of the statements I'm doing "insert into query_builder ...yada yada' where it should be:
"insert into " . TABLE_QUERY_BUILDER . " ..... "
I here's a replacement file. This goes in:
/admin/includes/functions/extra_functions/subscription_manager.php
-Ng_
Here is the pages/subscribe/header_php.php file with those changes mentioned in a prior post.
I will incorporate all of these later into a patch.
remember to backup prior to installing.
-Ng_
oh ho! And that did the trick - no errors on the recent "update" and the test email group is now availible in the emal tool :)
You're wonderful :D
Good. I'll build another release and/or get those patches on my site tonight.
I am running the old version of subscribe (1.1 I think it is) on Zen 1.2.7
I think the SQL tables are the same on the new version, so I am going to ask my question here.
In the admin panel->Tools->Subscription Removal I find some addresses are duplicated. I am fairly sure that those addresses are the accounts that existed when I installed the module. I also suspect that I caused the trouble. It was a while back, but I think I ran into a bit of trouble when I ran the initial SQL query and ended up running it twice or some such ignorant thing.
Looking in phpmyadmin I find 2 tables, a customers table and a subscribers table. The offending customers are, indeed, listed in both tables. In the customers table they are simply listed as being subscribed to the newsletter by way of a "1" in the Newsletter field. In the subscribers table those same customers have 2 separate entries in which the customers_id is the same in each entry, but the subscriber_id varies, a lower number (presumably the original) and a higher number (presumably a subsequently created value.)
I could simply sort the table by email address and delete half of the entries, but I wanted to be sure I am not aggravating the problem further. Which entry should I retain, the lower subscriber_id value or the higher, or no matter?
Is there a simple SQL query that I can use to effect the cleanup? You may have gleaned that I am SQL illiterate (just another livin'-on-the-edge Zenner playing w/ danger she knows not of...)
Thanks for any help, and feel free to kick me off this thread if the new version has taking a path so different as to make my post irrelevant here, :D
Best,
Audra
Audra,
Let me rephrase so as not to misunderstand. By duplicate you are meaning one in the customer table and one in the subscriber table, correct?
This is not an error-you see both contribs keep ZenCarts structure and method intact.
So customers have an entry in both tables, while news-only subscribers are only found in the subscriber table.
Are you experiencing other issues that caused you to look into this?
-Ng_
On my site is a patch comprised of the files above to address the update sql errors and subscriber notification glitch.
I'll be releasing the manager patch tonight/tomorrow.
-Ng_
No, there are two entries for these customers in the subscriber table as well as the one entry in the customer table.
Okay, you say you aren't too sql-savvy, but can you use phpMyAdmin? If so, this is the easiest way to fix this. We're going to get rid of the customers and re-insert them.Quote:
Originally Posted by audradh
First, check and make sure you still have the customer transfer file that came with that contribution called subscribe_transfer_data.php
It's probably in your root directory, altho directions might have had you put it in admin.
Select the subscribers table. Click on the export tab. Check the 'export data' box and 'complete inserts' (you can leave others as what they are). Export all data and save as a .sql file on your computer. (we're making a backup of the data, just in case.
Verify that you do indeed have a backup. :)
Now select the [sql] tab and enter this query:
SELECT FROM subscribers WHERE customer_id NOT NULL
(I'm working from memory. It might be IS NOT NULL or <> NULL)
What should come up is a list of all the customer accounts. You can look at the customers_id column to be sure. Click on that to sort by it.
Now you have a choice depending on how many customers you have.
If you don't have too many, you can check the box on each duplicate record (so one is checked, one is not), then at the bottom of the list you should see the option to delete the checked boxes.
If you have too many, first verify that your query only brought up customer accounts, then change the SELECT to DELETE and run it. This will delete ALL customer info in the subscribers table. If you do this then you need to run the subscribe_transfer_data.php program again (just point your browser to that page).
-Ng_
i tried to send my newsletter out, using "all newsletter subscribers" and I got the following error:
Please wait .. sending emails ..
Please do not interrupt this process!
1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '[email protected]'' at line 1
in:
[SELECT count(*) as count FROM zen_subscribers WHERE email_address = '[email protected]'[email protected]']
If you were entering information, press the BACK button in your browser and re-check the information you had entered to be sure you left no blank fields.
:cry: I just don't know what to do next to fix it, actually I should say I don't know what to do first to fix it.
:smartass: See I just needed to reach the end of my rope and read my own post a couple of times and the problem jumped out at me. I just used phpmyadmin and fixed the problem with that particular email address, which happened to be mine, and *poof* magic happens and newsletters are bein' sent.
Let me check it out...
grin... often happens :)Quote:
Originally Posted by barco57
Was it the quotes? or doubling? That's what jumped out at me when I saw it but I wanted to be sure before answering.
-Ng_
(btw...I've decided to finish up the revision and release tonight rather than delay until monday. It'll be up soon).
what I don't know is how the email address got screwed up in the first place. None of the other email addresses in the list have any problems.
It was the doubling.
I have another question about the database
when browsing zen_subscribers I noted that some of the email address under customer id have a number, but when you look at the subscribe date it shows 0000-00-00. The other email addresses have null for the customer id and have a filled out subscriber date. Do I assume correctly that the customers with an id and no date signed up for the newsletter when creating an account and the others signed up for the newsletter only? and is this the correct behavior for this mod?
Yes, I don't transfer over the customer account creation date or when the subscription was made/changed (tho I easily could if you'd like that) for customers.Quote:
Originally Posted by barco57
News-only subscribers have a subscribed_date, but no customers_id (as they are not a customer). When/if they become one, then it gets merged and updated.
-Ng_
I don't see a reason at this time to make anychanges to this behavior. I just wanted to check and make sure I understood what was going on. Every little bit of information I gather on zen-cart, its mods and the interaction with the database helps me sort out the little problems as they arise without having to have a panic attack everytime something doesn't work out quite right. Thanks.
This is mainly a BugFix release, but it also enhances the subscription manager page in admin.
It fixes the known flaws in 2.0.2 and fixes an inadvertant error I introduced with the 2.0.3 patch file.
No database upgrade is needed-you can just overwrite the files. To overwrite just the changed files, see the changelog for a list.
Submitted to the downloads section, also available on my site: http://www.notgoddess.com/scripts/newsletter-subscribe
As ever, report issues and I'll address them promptly. I will be afk July 2 and part of the third.
-Ng_
great! i updated all files. All seems working fine now except one strange thing
When i go to Subscription Manager and sent a email to a newsletter only subscr. it sents the email fine.
BUT when i do select: Newsletter only Subscr. from the newslettermanager i does not send the email for there is a error: No recipient addresses found in header .
Sending to ALL is fine as the others.. except this one does not seem to work correctly.
What should i double check?? some one a solution maybe?
Just wanted to say thanks Ng! I manually deleted the dups by browsing the table in phpmyadmin as we discussed via pm. All is happy :yes: :DQuote:
Originally Posted by NotGoddess
Best,
Audra
Okay, let me verify what you are saying.Quote:
Originally Posted by kookiewookie
1) You have newsletter-only subscribers.
2) You can click on the 'email' button from there and send email to that individual
3) When you go into Tools -> Newsletter Manager, you're picking this option:
Newsletter-only Subscribers (#)
And that (#) is a number other than 0.
4) When you select that drop-down option and hit 'select' and it goes to the preview screen, you see this in red:
Customers receiving newsletter: #
And again that # is greater than 0 and should match the previous #.
5) You click on 'send mail' and that's when you get the error?
And that it's only the Newsletter-only Subscribers (#) one that gives you the error?
I'm not running into issues on my dev site. Even sending to a 0 group goes okay (it just sends 0 emails). It might be an issue with the imported emails.
-Ng_
right!
If i send mail from Subscription manager all goes fine.
If i send from newsletter manager all goes fine with all options BUT
not the particular selection: Newsletters Subscribers Only!
Then all over sudden there is no emailadres in header even when the 'count' says there is at least one.
Okay, from some testing we were able to discover it's a sendmail-related error.Quote:
Originally Posted by kookiewookie
I'm working on the issue.
-Ng_
Hopefully you find the solution soon; thank you very much!
Got it. I knew it was my scripting somewhere causing the error but thought it was sendmail related. It's actually in the query string used. It's pulling email_address but it needs to be returned as customers_email_address
Use the sql patch tool to do this update:
Be sure to add your dbprefix if needed.Code:UPDATE query_builder set query_string = 'SELECT email_address as customers_email_address FROM TABLE_SUBSCRIBERS WHERE email_format != ''NONE'' and confirmed = 1 and (customers_id IS NULL or customers_id = 0) order by email_address'
WHERE query_string = 'SELECT email_address FROM TABLE_SUBSCRIBERS WHERE email_format != ''NONE'' and confirmed = 1 and (customers_id IS NULL or customers_id = 0) order by email_address';
Or use phpMyAdmin to update it.
I'll fix it in the release.
-Ng_
New version fixing the above issue. Version 2.0.5
On my site or soon in contributions.
-Ng_
works like a charm thanks.
now onto my wishlist...... I am trying to figure out to make the process of dealing with subscribers who sign up after we have sent out the newsletter for the month. Would it be possible to track when a newsletter is sent out (set date) and then have a function where new suscribers who have not gotten that newsletter are tracked and grouped in the dropdown so that I can send them the newsletter, say once a week. When the next newsletter is sent to all subscribers it would reset the tracking.
on to another issue subscribe date. We already went over the subscribe date for customers in the zen_subscribers list. No issue but when I go to subscription manager some of the customers early (by date) on in the list have an odd date of subscrition (11-30-2036). These customers also have the 00-00-0000 date in the DB. I suppose the two are related but it seems to have stopped after one of the updates, not sure which one though since I didn't notice this until today after I updated to 2.05
Regarding the first...I'll see what I can do.
Regarding the second, I'll make the next update add a subscribed date for customers-that should resolve that issue.
Can you do me a favor and add these to the wishlist on my site (just go to the article and add as a comment)-it'll help remind me to get them in rather than relying on my ability to scroll through the posts.
-Ng_
ok added them as comments on your site. :thumbsup:
NG: I'm having an "issue" with my cart -
I have found that the Send Email tool does not function if the customer is not subscribed to the newsletter.
I don't know if this was tied to having newsletter only subscriptions added to my cart.
If i get a chance, I'll see if I have space & the ability to do a clean install of 1.3.0.2 with to test, but I thought I'd ask here if anyone else can replicate the problem.
Thanks for this module again, btw. It's fantastic :D
That's not good. I'll look into it tonight.Quote:
Originally Posted by woodlandsprite
Found it. See the attached new audience.php file (backup your other before replacing tho :)Quote:
Originally Posted by woodlandsprite
Also noticed another bug...it was letting me send to non-confirmed subscribers when I selected the 'All Newsletter Subscribers' option. To fix that put this in your sql patch tool (replace zen_ in zen_query_builder with your prefix, if any).
[code]
UPDATE query_builder
SET query_string = 'select c.customers_firstname, c.customers_lastname, s.email_address as customers_email_address from TABLE_SUBSCRIBERS as s left join TABLE_CUSTOMERS as c on c.customers_id = s.customers_id where
(s.confirmed = 1 or s.customers_id >= 1)'
WHERE query_string = 'select c.customers_firstname, c.customers_lastname, s.email_address as customers_email_address from TABLE_SUBSCRIBERS as s left join TABLE_CUSTOMERS as c on c.customers_id = s.customers_id';
[code]
I'll get an update out soon as I can (Monday-ish is likely).
-Ng_
NG: You're wonderful. The quick testing done this am indicates it works.
Will upload to my live site later today :D (dont want to risk fumble fingers on the live site ;) )
NG - I have a really silly question. If a newsletter subscriber decides to open an account, is there any way to default their newsletter subscription status to "yes"?
I ask because the default setting on the store for newsletter subscription is No - which seems to override their newsletter subscription status if they have subscribed before becoming a customer.
Just wondering :)
Thanks again for the wonderful mod (and the superfast debug!)
-Stephanie
It should merge the two accounts-if the person forgot to check the 'newsletter' box it should still keep their subscription, but I'll check and include a fix if needed.
-Ng_
Thanks NG -
I did a test on my mirror and it seems to be working as you describe.
There may have been some other confusion going on as we were trying to do some specialized setup for that particular customer.
Hey, NotGoddess!!
First off, thanks for what seems to be a great contribution!! (I know it's going to make my life easier, that's for sure).
I just had one question (& as I'm still pretty wet behind the ears with regards to PHP, I hope you can take a sec to help me figure it out):
Given the design of my site, I don't have room to put the full "Newsletter: Enter Email Address (& select HTML or Text-Based)" form on my main page (nor am I using sideboxes, so that approach is out)...so I'm looking at using one of the Define pages as an 'E-List' page. I'm planning to write some body copy, then I want to have the form, along with subscribe/unsubscribe buttons underneath.
My question for you: As a starting point, will I be able to just copy the newsletter_subscribe_mod code from the tpl_header.php example & paste it into the Define Pages page (and tweak the text a bit to make sure it says what I need it to say)? Or will I need to get in and rewrite some of the paths to allow the PHP to find the right way to the functions needed?
...or is there an easier way you'd suggest to do this?
It's probably a simple thing - I just don't understand PHP enough yet to figure out how you're calling the directories up to find the right code.
Thanks for helping a newbie out!
Actually it's pretty easy...if you look at the tpl_subscribe.php in the templates/ dir you'll get an idea (it uses a defined page too). I can do a workup later tonight for you if needed.
-Ng_
Thanks, NG! I'm looking into it...we'll see if my 'PHP Coder' hat fits me well enough today to make it work...otherwise, I might take you up on your offer to do a workup of it.Quote:
Originally Posted by NotGoddess
Thanks again!
Okay. Hrmph. I'm looking over it, and I'm still not getting how it works. (And even though I've backed up, I don't want to lose track of what I'm working with & somehow mess up the whole thing.)
So I hate to do this, but might I take you up on that offer of doing a workup that would work the way I need it to? I'm just not good enough yet to understand it...and while I firmly believe in learning by doing, I just want to be DONE with this, at this point.
Basically, I'm trying to create a page something like the top of this page:
http://www.glarkware.com/elist.shtml
(Just the top part - although their way of being able to 'subscribe' to a product that's out of stock is pretty cool... But I'll just wait a year (or 5) 'til I'm a bit more familiar with the inner workings of Zen Cart, then I'll try & tackle that one myself.) :smile:
I've got the layout part down...I just need to be able to have the subscribe and unsubscribe buttons on the same page, under the field.
If there's anything you could do to look into it, I'd really appreciate it.
I can do that. It's actually a good idea to allow a page (or sidebox) with allows both subscriptions and removal at once (I've been depending on the 'unsubscribe' link supplied with the cart).
If you'll give me a day or so I can get it out for you-I have to rewrite the subscribe/unsubscribe processing to properly using multiple submits.
-Ng_
Thanks, NG!
Take your time - I've got PLENTY to work on at this point... :smile:
LD
Thanks for the great contribution! Here's some feedback on what maybe two minor problems:
I subscribed to newsletters only, info was inserted in subscribers table.
I then registered to the site, using the same email, and not clicking the subscribe box. An entry was created in the customers table, but newsletter_subscribe was set to zero. I thought it would have picked up the fact I had subscribed (the "automerge" the docs mention), but since I said not to subscribe, this seems logical too. I went to the account/newsletter subscriptions page, and the checkbox is unchecked. I checked it, hit update, and got a duplicate entry warned message from SQL. If I refresh the page, there is no ewrror,and both tables indicate I am subscribed. If I click the subscribe box when I register, there are no problems.
I'd like to make the following two suggestions:
1) If a person is subscibed to newsletters only and then register, the subscribe button should be checked on the registration form.
2) A check should be made to see if the person is currentlysubscribed, to prevent the duplicate entry SQL entry.
How would the program know whether they're subscribed or not, since they haven't entered their email address yet when the registration page is prepared... ?Quote:
Originally Posted by pglatz
The person first subscribed to newsletters-only, then registers as a member. When the registration form is displayed, a database query could be made to see if they were in the subscribers table, and if so, the subscribe checkbox would be checked.Quote:
Originally Posted by DrByte
We know if they are subscribed or not at the time the form is being created.
Hello again, NG :)
Noticed a peculiarity I think is related to the Newsletter Only Subscribe mod.
Customers that also happen to have a newsletter subscription apear to have a bogus subscribe date created of 11/30/2036.
Not sure how this affects things. Still have to test.
-Stephanie
This is a great module! I had some other questions from doing some testing...
Does the current module allow for sending out an automatic welcome newsletter/message that welcomes or confrims that the subscriber has sucessfully opted in?
Also, I noticed that when the message stack error appears for these conditions:
1. This email address has already placed a Newsletter-Only subscription. If you did not receive the confirmation request, please email xxx from your email address to request the subscription.
2. There is already a Customer Account using that email address. To subscribe to the newsletter, please LOGIN and select the My Account link at the top right. Click here if you have forgotten your password.
that the newsletter subscribe field still appears, which it shouldn't since they have already subscribed or tried to subscribe. Can this be easily fixed?
Also, are there message errors for people that have already subscribed and have already confirmed and opted in, as well, to say that they are a current newsletter subscriber for both newsletter-only and current account holders?
Well, once they click on the confirmation link they get a 'thanks for confirming' message on the screen but that's it. You could put that on the wishlist at my site if you wish.Quote:
Originally Posted by etoile03
This is intentional-the field/button reappears because the email was invalid in some way (in those cases already existing). Having the field there allows the person to change their email if needed. So it's not a 'bug' to be fixed, but rather a feature. Flags could be added to the code to not show it in those cases-another wishlist item.Quote:
Originally Posted by etoile03
I'm a bit confused on what you are asking here. It sounds like you are asking for completely separate messages for these conditions:Quote:
Originally Posted by etoile03
1) newsletter - not confirmed
2) newsletter - confirmed
3) account holder, but not subscribed to newsletter
4) account holder, already subscribed
The checks don't go into that much detail-they just check if the email exists either for a subscription or as a customer, and if so, says that.
That being said you can add it as a wishlist item as well, but you might want to read the next post.
-Ng_
I will be honest with you-I plan on doing one more release to fix the errors and add what additional features I can that have been requested prior to today, then this contribution will be put on the 'incentive' plan. I will of course still do support where I can and provide bug fixes, but I consider this a pretty mature/stable contribution at this point.
I've put well over a hundred hours into this contrib and gotten 'great contrib! can you add...' but nothing financially from the 800+ who have downloaded this (I figured probably 300 are actively using).
I'm not trying to sound mercenary-I love doing OSS, and intentionally do not ransom my work, but I'll be very short on my bills next week and just have no clue how I'm going to catch them up, and have to spend my time trying to avoid having my utilities shutoff by competing against folks who bid $10 on 5hr programming projects.
I'll try to still work on new stuff when I can but it can't be a priority for me anymore when I have kids to feed.
Apologies in advance if anyone takes offense-I thought it better to be upfront than just appear to have abandoned you.
-Ng_
Hello!
I have installed the newsletter-only subscriptions and it seems to work very well for me! :thumbsup: I wanted to thank you and to ask a little question..
Is it possible to put the newsletter form on other pages that aren't part of the shop?
I have a blog and I would like to put the newsletter join form on the sidebar..is there a code that I could cut and paste on it?!
I tried to search for it but I don't want to mees it up.. Let me know if someone know how to do it!
thank you!!! and sorry for my english :happy:
You can use the module 'show sidebox on external page' (http://www.zen-cart.com/index.php?ma...products_id=79) to do this. This would keep all the names/etc inside zencart, and they would be directed to the subscription pages there.Quote:
Originally Posted by florence
If you wish something completely separate from your cart you would want to look into a separate newsletter program like phpMailer or GroupMail.
-Ng_
Hello,
After installing Everything seems to work just right until I try to send an email.
This is the error on the >tools>send e-mail page. (admin/mail.php)
-----------------
1267 Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (latin1_german1_ci,IMPLICIT) for operation 'locate'
in:
[SELECT c.customers_email_address as customers_email_address FROM zen_customers as c LEFT JOIN zen_configuration as q on LOCATE( c.customers_email_address, q.configuration_value) >= 1 WHERE configuration_key = 'NEWSONLY_SUBSCRIPTION_TEST_GROUP' ]
If you were entering information, press the BACK button in your browser and re-check the information you had entered to be sure you left no blank fields.
-----------------
I am using
Database: MySQL 4.1.9-max
PHP Version: 4.3.10 (Zend: 1.3.0)
HTTP Server: Apache/1.3.33 (Win32) PHP/4.3.10
Zen Cart 1.3.0.2
Could someone help?
If you google 'illegal mix of collations' you'll get a lot of entries about this-basically it's saying the two tables (or fields) have the same language but different accents so can't compare. That or that the input is treated as a different collation (and same result).Quote:
Originally Posted by picou
In base, it's a MySQL problem. Usually they tell you to upgrade, but you can try checking the collations on those two fields to see if they compare, manually change, or run through the various search results you get on google (try searching first with your MySQL version in the query string to see if there are specific fixes for that version.
I'll try to see what I can do. Unfort I have to work within the confines of the query builder & audience.php for this or else hack them more than is done but there might be an alternative.
-Ng_
I'm not confortable in MySQL stuff.
I did a search in My SQl and this is the return:
----------------------------
requête SQL:
SELECT *
FROM `new`.`zen_query_builder`
WHERE `query_id` LIKE '%customers_email_address%'
OR `query_category` LIKE CONVERT( _utf8 '%customers_email_address%'
USING latin1 )
COLLATE latin1_swedish_ci
OR `query_name` LIKE CONVERT( _utf8 '%customers_email_address%'
USING latin1 )
COLLATE latin1_swedish_ci
OR `query_description` LIKE CONVERT( _utf8 '%customers_email_address%'
USING latin1 )
COLLATE latin1_swedish_ci
OR `query_string` LIKE CONVERT( _utf8 '%customers_email_address%'
USING latin1 )
COLLATE latin1_swedish_ci
OR `query_keys_list` LIKE CONVERT( _utf8 '%customers_email_address%'
USING latin1 )
COLLATE latin1_swedish_ci
------------------------------
Is this any indication? What should I do?
Thanks for your help
Picou,
I've been looking for a quick fix and can't find, other than those I already recommended.
For now, as long as you aren't using the test group, I suggest you just remove that statement from the query_builder table.
You can use phpMyAdmin to find it or run this in your sql patch page of the tools menu:
DELETE from zen_query_builder
WHERE query_name LIKE '%Email Test Group%';
I'll keep seeing if I can find another solution that will allow you to use the test group.
-Ng_
NotGoddess,
I haven't studied your code or docs which likely explain the purpose of this query:Am I correct that you are attempting to find email addresses from the customers table which are listed in the NEWSONLY_SUBSCRIPTION_TEST_GROUP constant?Code:SELECT c.customers_email_address as customers_email_address FROM zen_customers as c LEFT JOIN zen_configuration as q on LOCATE( c.customers_email_address, q.configuration_value) >= 1 WHERE configuration_key = 'NEWSONLY_SUBSCRIPTION_TEST_GROUP'
If so, then there may be a couple workarounds:
Option A: ensure that the group entries are delimited using % and , and ' -- like this: '%[email protected]%', '%[email protected]%', '%etc%', '%etc%'
Then change your query to:Option B: ensure that the entries are delimited with ' and , --- like this: '[email protected]', '[email protected]', 'etc', 'etc', 'etc'Code:SELECT c.customers_email_address as customers_email_address
FROM customers as c
LEFT JOIN configuration as q
on c.customers_email_address
LIKE q.configuration_value
WHERE configuration_key = 'EMAIL_FROM' ;
Then use a query like this:I haven't tested exhaustively, but this may provide a workaround or perhaps help steer you in another direction.Code:SELECT c.customers_email_address as customers_email_address
FROM customers as c
LEFT JOIN configuration as q
on c.customers_email_address
IN (q.configuration_value)
WHERE configuration_key = 'EMAIL_FROM' ;
Thank you, DrByte. I'll most definately check those out. I tried joins originally but never quite got my syntax correct.
-Ng_
I am trying to send a newsletter through the tools newsletter feature. I created a newsletter using the drop down box. I save the newsletter. The status of the newsletters shows an X that says false? How or where do I send the newsletter? I know I can send email through the send email feature. Whats the point of having both the email and newsletter feature?
Thanks
Blain
Hi Blain. This thread is for the contribution, not general questions, but I answer anyway. Did you 'lock' the newsletter? After you 'save' you should have 2 options: preview or lock. You preview the letter to ensure it looks okay, then once it's all set to go, you lock it. Once a newsletter is locked you then get additional options to send it.Quote:
Originally Posted by bci7
-Ng_
Ok, the fix worked on the send e-mail portion.
Thanks.
I get another error when trying to access customers>customers:
Parse error: syntax error, unexpected '}' in /home/www/c292f5d8b8cfe582a86b725956f88de3/web/boutique_vin/admin/customers.php on line 1215
I've opened /admin/customers.php to see what is the problem, but there are only 1192 Lines.
What do you suggest?
Thanks