Support » Plugins » [eCampaign] experience and thoughts

Viewing 15 replies - 1 through 15 (of 39 total)
  • john ackers


    Mark, thanks for the feedback. Long posts are good, they are interesting to me! Will get back to you tomorrow.

    Thanks for the quick response

    john ackers



    custom fields: I think I can add custom fields in a subsequent release. The custom fields would be saved in the info column in ecampaign_log table and would be seen in the admin log page. But I think you would want to add your specific fields, function and organisation, as columns to ecampaign_log so these fields can be used for filtering, sorting, counting which I am slightly reluctant to do.

    Display subscribers and organisation counts: It would be easy to add this functionality (mainly to EcampaignLog.class.php) if these columns are added to the ecampaign_log table.

    Sign up: I think you want to create a new wordpress user of presumably type subscriber. It should be possible to get ecampaign to create a new wordpress user using a small amount of PHP and could add a class/file to do that.

    Have you considered using a CRM? CRMs give you a lost of flexibility in terms of fields, form design and reporting options. The open source drupal+CiviCRM comes to mind. But there is a also wordpress+CiviCRM package which will be released soon. I am guessing that there also some cheap commercial CRM packages that can be added to wordpress and would allow you to do what you want quite easily. If you don’t think a CRM will be suitable please let know and I’ll look what can be done with ecampaign again.

    Hope this helps.

    Thanks for the reply.

    Custom fields:
    You are right, I would want to save fields in seperate columns. I could immagine something along the lines of the labels of the checkboxes: two or three colums named “custom1” etc, specifically named by an atribute in the form where the field is added. This would be universal and at the same time offer flexibility (I assume it is the specificness of the fields that bothers you, not adding another colum to the table. It means you could even use the fields differently depending on what petition you are showing (since the atributes coul be set differently on a customised form without affecting the db colums in any way)

    Displaying data
    The display function would be great. I immagine a call on page that uses the fields in the same way the forms do (default on admin pages and possible customisation on page). If the suggestion for custom fields above makes sense, this would sort them out again (atributing the right field names to the right custom fields. something like:

    [ecampaign class=display postID=11]
    {name};{custom1 "function"};{custom2 "organisation"}
    Or, ideal to my situation but probably a lot more complex:

    [ecampaign class=display postID=11]
    {name anonymous=cb1};{custom1 “function” anonymous=cb2};{custom2 “organisation”}

    I have searched for a generic display plugin (somethig that puts an user interface on echo-ing any wpdb data to a html table on a page). I have found none and it seems to be a common problem for many people who are not proficient in PHP: It is so simple to do specifically (if you know PHP) nobody finds any chalenge in building it generically.

    sign up
    I want to do exactly that. I realised after my initial post it would mean a check to see if the email is unique, but I would suggest that anyway after having multiple petition signups with one email adress (probably due to reloading a browser). You might even think of a welcomming email using the eCampaign fields in the same way a campaign is generated in the admin field, but I have no idea wheter that is easily achieved reusing code or a whole new chalenge

    CRM or WP
    I have indeed considered a CRM, but was strongly advised against it. The main reason is that, ultimately, the site is just pages and articles grouped around this one petition. That added to my non-existing PHP skills would make Drupal overly complex (or so I was told). Apart from some very specific point mentioned above and the generic problem of creating html tables on pages using data from the db, I am actually very happy with WordPress!

    Thanks for your response so far, I hope I have been an inspiration to eCampaign rather than just being a demanding user. Warn me if I ask to much…


    Custom fields: I have added (but not yet committed to SVN) custom fields which takes the form {fieldname} or {fieldname label=’labelname’} so in your case, you could do things like:

    {organisation size=’40’}
    {position label=’Job Title’}

    Sign up: This is what I am proposing to do. Provide an additional subscription class that will add site visitors as wp users using the wp api call. In addition, add any custom fields that match up to existing user meta data fields. I think this will be generally useful to others.

    Displaying Data: I think that there should be user profile plugins that will allow the user meta data to be viewed.

    I have been looking at this list

    Almost suitable is

    If neither of us can find anything, I could add a table view of wp users to the admin pages.

    It seems to make sense leverage existing plugins to extend, store and display user profiles rather than replicate it within the ecampaign plugin.

    What do you think?


    Have got the above working, will check in tomorrow. Have found that using this plugin
    and adding fields like say organisation, you can see the organisation keyed into the ecampaign form, on the bottom of the user profile. Have not found a plugin to list the users along with meta fields in the way that you want.

    Changes checked into the SVN trunk. All the functionality is there and working except the ‘Display subscribers and organisation counts’. The readme.html has been updated. (But cannot find a simple way to download as zip.)

    That was not only quick, but the integration in profiles is excellent!

    I heve not installed it (did not use SVN before) but the docs suggest great work.

    For the display part, I did have a look at People lists.
    There seems to be two problems:

    • they only display selected users, not just a comprehensive list of all of them.
    • they have their own implementation of custom fields, rather than looking which custom fields are already generated by other plugins

    Also, for my specific interest I would have to find a way to “anonymise” results for those who tagged that box, but that is just a problem specific to my case I guess.

    I wish I could be more helpfull than just by generating ideas. I really should get some programming skills after all.


    I don’t think the anonymise function is a unique requirement. I could add support for an anonymise attribute on each field, perhaps the checkbox would appear when hovering over the field. But still thinking about what to do with the information.

    You said before “something that puts an user interface on echo-ing any wpdb data to a html table on a page”, I think it would be possible to write a plugin to show a table of results. However making it flexible enough to handle usermeta and postmeta is more tricky. Also, if the table was going to appear in a user page, the view of the table(s) may need to be cached to improve performance.

    But if the column data presentation could be customised/configured, the test for anonymity could be included here and and this might give you the result you want.

    I think you have different/multiple views in mind. Can you be specific about what tables/columns and grouping/counting you are looking for. Does this view only need to be accessed just with a short code? If i put something together, I want to be sure your functionality is covered.


    For my site, I maintain 2 views (manually, now):

    • a list of subscribers: name, function, organisation
    • a count of subscribers per organisation: organisation, count

    I ask subscribers for name, email, function and organisation. I use the 2 checkboxes for “do not show my name” and “do not show my function”.

    on subscriptions:
    John Smith;; operator; Hellothere inc; 0;0
    Mike Turner;; chairman, BraveWorld GmbH; 1;1
    Jake Jameson;; CEO; Hellothere Inc

    I should get on the subscribers page
    John Smith; operator; Hellothere inc
    [hidden]; [hidden]; BraveWorld GmbH
    [hidden]; CEO; Hellothere Inc

    On the organisation page
    Hellothere Inc; 2
    BraveWorld GmbH; 1

    see it in action on and (I have made a distiction on the organisation page at the moment, but it is not important

    I imagined something like

    [ecampaign class=show]

    to do the trick, where {function} could be replaced with something like {usermeta field=function} if necessary.

    I guess the anonymity marker would have to be stored with the other parameters. For my specific needs I would want to control which fields a subscriber could set to anonymous (because I always need to always show organisation for strategic purposes, the subscribers sympathise but their organisations are the ones are the ones that participate actively), but that may be nitpicking and as long as they are counted in the totals would not even be a real issue come to think of it.

    The generic thing I mentioned (something that puts…) is probably just my lack of coding knowledge. I sounded simple to have something that would take something like

    {wp_ecampaign_log select=state;sign show=name;address;checkbox1}

    to display the requested data on a page in a table. It would not serve all of my needs (no anonimity; data is going to be spread across multiple tables; I didn’t take into account the way the usermeta data is stored), but I looked for it as a starting point.

    Hope this is specific enough

    I reread my post and realised the wp_usermeta and wp_ecampaign_log should share a unique key or something in order to be coupled. otherwise my remark after the first coding example is of course useless.


    That’s really helpful. I should have looked at your web pages.

    It looks straightforward and I understand the anonymity requirements. I’ll get back to you in a day or so. I could send you a simple 1 or 2 file plugin that meets your data view needs and then commit to SVN a generic/configurable version sometime after Christmas.


    P.S. Jumping into detail, as far as annonymity field is concerned the current (SVN trunk) allows

    {name* label='Name'}   {hideName save='usermeta' type='checkbox' Hide my name in the list of participants}
    {email* label='E-Mail'}
    {Feature* }   {hideFeature save='usermeta' type='checkbox' Hide my position in the list of participants}

    hideName and hideFeature are just arbitrarily named fields.

    I am currently joining wp_usermeta and wp_ecampaign_log on email address but will probably introduce userID into wp_ecampaign_log.

    Hi John,

    tested everything and almost all of it works now. 1 issue I do not know how to handle yet:

    • When I tested, I did not get a password e-mail. Maybe because I disabled “users can register” in WP to force people to only register by signing the petition. You mentioned that the welcome message might contain the password, but how do I achieve that? Is {password} possible, which would be replaced by a newly generated user password?

    furthermore, there are some interesting points. Not problems, but points of attention

    • In “user profile” view, only profiles that have all fields filed are shown. fields may be empty, but is not all the fields are mentioned in the usermeta, the user will not show. This is important to know for all those who update their petition to include a new field, since it means they have to at least edit-save all of the exsisting users. Maybe a user could show as soon as action=sign, with e-mail as a key. missing fields could than be set to blank
    • It seems label is used to define how to display the field but also to define the fieldname in wp_usermeta. I did expect the latter to be named as the field is, i.e. {field label=showname save=usermeta} would result in displaying “Showname” and saving the input as “field” in wp_usermeta.
    • previous remark also means that, at the moment, a field which is set to save=usermeta but has no label set, will not be saved. Took me a while to fugure that one out, so maybe it should be mentioned in documentation
    • Simple CRM does not know how to handle checkboxes. I posted a suggestion to its developer to include them

    Having used the new configuration, your anonimity solution seems a specific case of coupling any checkbox to hide a field if checked. I could imagine a display format as mentioned before, like this:

    [ecampaign class=show]
    {name hide=checkbox1}{function }{organisation}

    which would introduce an if-loop on displaying the name, based on the value of checkbox1. Don’t know if that poses serious coding chalenges or not.

    Oh, one more suggestion:
    would it be difficult to compose{Name} from fields like {firstname} and {lastname} . I would suggest something along the lines of

    {firstname label=first_name save=usermeta}
    {lastname label=last_name save=usermeta}
    {Name value='{firstname}.{lastname}' hidden=hidden}
    {nickname value='{firstname}." ".{lastname}' save=usermeta hidden=hidden}

    That would result in 2 input fields, a registration in the eCampaign Log, passing of a username without spaces and setting the appropriate values in the usermeta-fields for a user. That would allow for much completer userprofiles to begin with.

    The hidden attribute works fine on a field by the way, I use

    {adduser type='checkbox' checked='checked' hidden='hidden' }

    to automate subscription on signing, which works great ( ib inform my subscribers that they will be added on signing, but do not alow signing without becomming a user (although they can delete their profiles later)

    (although they can delete their profiles later)

    I checked. They can not (only I can, as administrator). Relieved, cause al the metadata about the petition would disappear if the user would be removed as user.

Viewing 15 replies - 1 through 15 (of 39 total)
  • The topic ‘[eCampaign] experience and thoughts’ is closed to new replies.