Plugin, beproefd en in gebruik (check feb 2019)

Post notification

http://wordpress.org/extend/plugins/post-notification/
Plugin wordt niet meer onderhouden, maar werkte lange tijd nog goed. Ik ben inmiddels overgestapt op MailChimp voor nieuwsbrieven.

Soms opeens problemen met versturen

Er komt dan een melding dat het verzenden mislukt is.
“Could not instantiate mail function” en zoiets als dit: https://wordpress.org/support/topic/could-not-instantiate-mail-function-1

Opgelost met deze plugin die het verzenden beter regelt: https://wordpress.org/plugins/wp-mail-smtp/

Hij werkte direct toen ik hem geinstalleerd had. Standaard staat er al een vinkje naast: Send all WordPress emails via SMTP.

[collapse]
Heel soms werkt het bevestigen niet goed.

De inschrijver krijgt een link om te bevestigen, maar krijgt dan wederom de tekst te zien met het verzoek het email adres te bevestigen.
Oplossing zelf ontdekt: de plugin kan om de een of andere redden de tabel wp_post_notification_emails niet aanmaken. Toen ik dat handmatig had gedaan, werkte de plugin weer helemaal naar behoren!

Kies in de 1e regel het door jou gebruikte voorvoegsel/prefix.

<br />--<br />-- Tabelstructuur voor tabel `wp_post_notification_emails`<br />--<br /><br />CREATE TABLE IF NOT EXISTS `wp_post_notification_emails` (<br /><{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}KEEPWHITESPACE{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}> `id` int(11) NOT NULL AUTO_INCREMENT,<br /><{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}KEEPWHITESPACE{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}> `email_addr` varchar(255) DEFAULT NULL,<br /><{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}KEEPWHITESPACE{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}> `gets_mail` int(11) DEFAULT NULL,<br /><{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}KEEPWHITESPACE{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}> `last_modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,<br /><{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}KEEPWHITESPACE{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}> `date_subscribed` datetime DEFAULT NULL,<br /><{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}KEEPWHITESPACE{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}> `act_code` varchar(32) DEFAULT NULL,<br /><{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}KEEPWHITESPACE{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}> `subscribe_ip` int(10) unsigned NOT NULL DEFAULT '0',<br /><{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}KEEPWHITESPACE{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}> PRIMARY KEY (`id`),<br /><{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}KEEPWHITESPACE{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}> KEY `id` (`id`,`gets_mail`),<br /><{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}KEEPWHITESPACE{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}> KEY `email_addr` (`email_addr`)<br />) ENGINE=MyISAM DEFAULT CHARSET=latin1 ;<br />
[collapse]
Instellingen
  • instellingen:
    instellingen

instellingen2

De openbare Hobbyfun website maakt wel gebruik van de categorieen.

[collapse]

Het is mogelijk emailadressen te importeren of te exporteren.

email template

Hieronder de code voor de nieuwsbrief van eetbaarnijmegen

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  <html xmlns="http://www.w3.org/1999/xhtml">  <head>  <title>Eetbaar Nijmegen</title>  <meta http-equiv=content-type content="text/html; charset=ISO-8859-1" />  </head>  <body>      <style type="text/css">  body {  margin: 0px;  padding: 0px;  width:100{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4} !important;  background: #FFF;  font-family: Verdana,Geneva,sans-serif;  font-size: 14px;  }  #container {  margin: 20px;  padding: 10px;  background: #FFF;  /*border:solid 1px #275C3C;*/  }  h1 {  border-top:dotted 1px #275C3C;  padding-top: 20px;  font-size: 1.4em;  color: #275C3C;  }  h1 a:link{color: #275C3C;}  h2 {font-size: 1.2em;font-weight: bold;}  h3 {  font-size: 1.0em;  font-weight: bold;  }  a:link {color:#000;  text-decoration: underline;  }  a:hover {color: #275C3C;  text-decoration: underline;}  .subscriptionDetails {  margin: 20px 0;  font-size: 1em;  font-family: "Lucida Sans Unicode", Tahoma, Arial, sans-serif;  color: #000;}  #onlinelezen a{font-size: 0.9em; text-align:right; font-weight:normal; float:right; padding-right:10px}  .alignright, img.alignright { display: inline; float: right; margin-left: 1.5em; }   .aligncenter, img.aligncenter { clear: both; display: block; margin-left: auto; margin-right: auto; }   p { clear: both; }   .alignleft {      float: left;      margin: 0 10px 5px 0;  }  td.nietinnieuwsbrief {color:#fff; width:1px; line-height:50{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}}  table#agendapunten td.footable-first-column {width:30{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}}  table#agendapunten .footable-row-detail-value {font-size:80{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}}  table#agendapunten thead {display:none}  td.nietinnieuwsbrief {color:#fff; width:1px; line-height:50{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}}  tr.smalvoornieuwsbrief {}    </style>  <body marginheight="0" offset="0">      	<center>          	<table border="0" cellpadding="0" cellspacing="0" height="100{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}" width="100{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}" id="backgroundTable" style="height:100{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4} !important; margin:0; padding:0; width:100{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4} !important;">              	<tr>                  	<td align="center" valign="top">                      	<table border="0" cellpadding="0" cellspacing="0" width="600" id="templateContainer">                          	<tr>                              	<td align="center" valign="top">                                  	<table border="0" cellpadding="0" cellspacing="0" width="600" id="templateHeader"  style="background-color:#FFF;">                                          <tr>                                              <td class="headerContent">                                              	<img src="http://eetbaarnijmegen.nl/nijme/wp-content/uploads/nieuwsbrief/nieuwsbriefheaderMetlogo.JPG" style="border:none; display:block; height:auto; line-height:100{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}; outline:none; text-decoration:none; max-width:600px;" />                                              				</td>                                          </tr>                                      </table>                                  </td>                              </tr>                          	<tr>                              	<td align="center" valign="top">  								                                      <!-- // Begin Template Body \\ -->                                  	<table border="0" cellpadding="0" cellspacing="0" width="600" id="templateBody">                                      	<tr>                                          	<td valign="top" width="600" id="templateContent">                                                  <table border="0" cellpadding="10" cellspacing="0" width="100{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}">  												<tr><td id="onlinelezen">  										<a href="@@permalink">De nieuwsbrief online lezen</a></td></tr>                                                      <tr>  													                                                          <td valign="top" style="color:#000; font-size:14px; line-height:150{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}; text-align:left;">                                                          	<h1><a href="@@permalink" style="color:#275C3C">@@title</a></h1>  															<div id="content">@@content</div>                                                              <table border="0" cellpadding="0" cellspacing="0" width="100{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}">                                                                      <tr>                                                                          <td align="center" colspan="4" valign="middle">                                                                                                                                                   </td>                                                                      </tr>                                                              </table>                                                             </td>                                                      </tr>                                                  </table>                                              </td>                                          </tr>                                      </table>                                      <!-- // End Template Body \\ -->                                  </td>                              </tr>                          	<tr>                              	<td align="center" valign="top">                                      <!-- // Begin Template Footer \\ -->                                  	<table border="0" cellpadding="20" cellspacing="0" width="600" id="templateFooter" style="background-color:transparent; border-top: 4px solid #CCCCCC;">                                      	<tr>                                          	<td valign="top" class="footerContent" style="color:#888987; font-size:11px; line-height:125{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}; text-align:left;">                                                  <div id="subscriptionDetails">      Als u deze nieuwsbrief niet langer wilt ontvangen, klikt u dan     <a href="@@conf_url">hier</a> om hem op te zeggen    </div>                                              </td>                                          </tr>                                      </table>                                      <!-- // End Template Footer \\ -->                                  </td>                              </tr>                          </table>                          <br />                      </td>                  </tr>              </table>          </center>    </body>  </html>
[collapse]
ivm tweetaligheid: 2 inschrijf-widgets

Er staat er standaard maar één klaar. Die nam ik in gebruik voor de Nederlandse versie.
Daarna een extra text widget gevuld met:

<form id="newsletter" method="post" action="<?php echo post_notification_get_link(); ?>" style="text-align:left">  	<p>email: <input type="text" name="addr" size="25" maxlength="50" value="<?php echo post_notification_get_addr(); ?>"/> </p>  	<input type="submit" name="submit" value="Submit" /></p>    </form>

NB: wel even de plugin Exec-PHP installeren.

De Nederlandse is alleen zichtbaar op Nederlandse pagina’s met voorwaarde: (widget logic plugin installeren)

qtrans_getLanguage()==”nl”
De engelstalige pagina’s zien het inschrijf-widget met: qtrans_getLanguage()==”en”

[collapse]
nog meer aanpassingen ivm tweetaligheid

Alle taalbestanden staan in één map; je kan maar vooréén taal kiezen, en dan leest hij alles uit die ene map.
Mijn aanpassingen: kies voor de hoofdtaal (engels bijv.) en zet dan alle bestanden in die ene hoofdmap, maar geef ze een net iets andere naam en pas dan de hoofdbestanden die ze oproepen aan. Het is grotendeels copy – paste. En ook makkelijk uit te breiden naar meer talen.

functions.php:

<br /><br />function post_notification_get_link(){<br /><{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}KEEPWHITESPACE{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}> if (qtrans_getLanguage()=="en") {<br /><{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}KEEPWHITESPACE{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}> //header 5<br /><{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}KEEPWHITESPACE{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}> $page=412;}<br /><{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}KEEPWHITESPACE{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}> else{<br /><{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}KEEPWHITESPACE{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}> //header 3<br /><{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}KEEPWHITESPACE{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}> $page=410;}<br /><br />//$page = get_option('post_notification_url');<br /><{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}KEEPWHITESPACE{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}> //if (qtrans_getLanguage()=="en" &amp;&amp;<br /><{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}KEEPWHITESPACE{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}> if (is_numeric($page)) return get_permalink($page);<br /><{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}KEEPWHITESPACE{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}> return $page;<br /><{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}KEEPWHITESPACE{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}> }

reg_success2.tmpl: heeft inhoud van nederlandstalige bevestiging; geplaatst in engelstalige mapje.
Taalmpaje engels:

bestand strings.php: dit bevat alle vertalingen van standaard termen zoals ‘activated’ => ‘Activation successful’,
Ik heb het rijtje uit het overeenkomstige Nl-bestand gekopieerd en achter het engelse geplakt. De benamingen aangepast. Dus:
‘activated_nl’ => ‘Activering geslaagd’,

In frontend.php:

<br /><br />if (qtrans_getLanguage()=="en"){<br /><{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}KEEPWHITESPACE{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}> $content['header'] = $post_notification_strings['registration_successful'];<br /><{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}KEEPWHITESPACE{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}> $msg = post_notification_ldfile('reg_success.tmpl');<br /><{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}KEEPWHITESPACE{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}> return $content;} //here it ends - We don't want to show the selection screen.<br /><br /><{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}KEEPWHITESPACE{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}> if (qtrans_getLanguage()=="nl"){<br /><{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}KEEPWHITESPACE{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}> $content['header'] = $post_notification_strings['registration_successful_nl'];<br /><{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}KEEPWHITESPACE{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}> $msg = post_notification_ldfile('reg_success_nl.tmpl');<br /><br /><{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}KEEPWHITESPACE{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}{6057f192fcaa104d5cef828d6b20b99706932ef5d7e753992a4e9cd8fde980a4}> return $content; }

De inschrijfpagina’s eb ik zelf een title gegeven, in plaats van de code: @@post_notification_header te gebruiken. Want daarmee krijg je de titel in de standaardtaal.
Nu gekozen voor: inschrijving voor berichten en subscription to posts.

[collapse]

Vergelijkbaar: