MemberMouse provides you with a wide range of SmartTags you can use to create a dynamic experience for your members. There are SmartTags that display the current member's name, email address, and other information. There are tags you can use to allow members to manage their subscriptions, others to change content based on the current member's access rights, and a lot more!


This is all very helpful when you're working within WordPress' content editor, but what if you want to be able to do all of this within a custom PHP script?


This is where the PHP Interface comes in.


NOTE: MemberMouse currently requires PHP 7. We recommend the latest version of the PHP 7 branch. Please see our System and Hosting Requirements for the most up-to-date information.


PHP Interface Requirements


The PHP interface functions require access to MemberMouse libraries in order to work. When you use the PHP interface functions within a WordPress template, these libraries are automatically loaded. However, if you want to use them within a standalone PHP script, you'll need to manually load the MemberMouse libraries by adding the following includes to the top of your file:



require_once("wp-load.php");
require_once("wp-content/plugins/membermouse/includes/mm-constants.php");
require_once("wp-content/plugins/membermouse/includes/init.php");



If your script is located in the root WordPress directory then you can use the includes exactly as they're presented above. If your script is located in another directory then you need to update the file paths appropriately.



Translating SmartTags in PHP Functions


With MemberMouse's PHP Interface you can utilize MemberMouse SmartTags right within a custom PHP script. You can use any WordPress plugin for executing PHP (i.e. PHP Exec) to use the PHP Interface functions right within the WordPress content editor. All SmartTags are supported through the PHP Interface with the exception of [MM_Form...] and [MM_Error...] SmartTags.


When using SmartTags within the WordPress content editor the following syntax is used:



[MM_Member_Data name='email']
[MM_Member_Decision membershipId='2|3']...[/MM_Member_Decision]



SmartTags are transformed into their PHP interface equivalent by taking the SmartTag name, making it all lowercase, and adding parenthesis to make it a valid PHP function. So for example, [MM_Order_Data] becomes mm_order_data().


You pass attributes to PHP Interface functions as an associative array. Here are a couple of examples:



mm_member_data(array("name"=>"email"))
mm_member_decision(array("isMember"=>"true", "membershipId"=>"2|3"))



The PHP Interface function accepts all of the same attributes as the SmartTag itself. Refer to the SmartTag documentation for a list of attributes by SmartTag.



Return Values


mm_..._data() functions return a string containing the requested data.


mm_..._link() functions return a string containing a URL or javascript function that should be placed within a <a> tag or <button> tag to make it a functional link.


mm_..._decision() functions return true or false based on the attributes passed to the function and the context in which it is run.



Examples


To see examples of how each SmartTag can be used in PHP, download the sample script.