GFPaystationAdmin

The Gravity Forms Paystation (3 party hosted) GFPaystationAdmin class.

Defined (1)

The class is defined in the following location(s).

/class.GFPaystationAdmin.php  
  1. class GFPaystationAdmin { 
  2.  
  3. const MENU_PAGE = 'gfpaystation'; // This is the slug used for in the URL for the paystation module. 
  4.  
  5. protected $plugin; 
  6. protected $adminPage = false; 
  7.  
  8. // ==================================================================================================================================== 
  9. /** 
  10. * Constructor. 
  11. * @param GFPaystationAdmin $plugin 
  12. */ 
  13. // ==================================================================================================================================== 
  14. public function __construct($plugin) { 
  15.  
  16. $this->plugin = $plugin; 
  17.  
  18. // handle admin init action 
  19. add_action('admin_init', array($this, 'actionAdminInit')); 
  20.  
  21. // need this for custom handling of metaboxes when edit (for some reason, $typenow is unset at admin_init when edit!) 
  22. if (!empty($_REQUEST['action'])) { 
  23. add_action('admin_action_' . $_REQUEST['action'], array($this, 'actionAdminAction')); 
  24.  
  25. // add GravityForms hooks 
  26. add_filter("gform_addon_navigation", array($this, 'gformAddonNavigation')); 
  27.  
  28. // hook for showing admin messages (warning if gravity forms is not activated). 
  29. add_action('admin_notices', array($this, 'actionAdminNotices')); 
  30.  
  31. // add action hook for adding plugin action links (settings link in plugins list). 
  32. add_action('plugin_action_links_' . GFPAYSTATION_PLUGIN_NAME, array($this, 'addPluginActionLinks')); 
  33.  
  34. // Ensure the Payment details go in to the new entry box as the info box is no longer around. 
  35. add_filter('gform_enable_entry_info_payment_details', '__return_false'); 
  36.  
  37. // hook for enqueuing admin styles 
  38. add_filter('admin_enqueue_scripts', array($this, 'enqueueScripts')); 
  39.  
  40. // AJAX actions 
  41. add_action('wp_ajax_gfpaystation_form_fields', array($this, 'ajaxGfFormFields')); 
  42. add_action('wp_ajax_gfpaystation_form_has_feed', array($this, 'ajaxGfFormHasFeed')); 
  43.  
  44. // ==================================================================================================================================== 
  45. /** 
  46. * test whether GravityForms plugin is installed and active 
  47. * @return boolean 
  48. */ 
  49. // ==================================================================================================================================== 
  50. public static function isGfActive() { 
  51. return class_exists('RGForms'); 
  52.  
  53. // ==================================================================================================================================== 
  54. /** 
  55. * handle admin init action 
  56. */ 
  57. // ==================================================================================================================================== 
  58. public function actionAdminInit() { 
  59. global $typenow; 
  60.  
  61. if ($typenow) { 
  62. $this->loadAdminPage($typenow); 
  63.  
  64. // ==================================================================================================================================== 
  65. /** 
  66. * for cases when typenow isn't set on admin init, catch it later 
  67. */ 
  68. // ==================================================================================================================================== 
  69. public function actionAdminAction() { 
  70. global $typenow; 
  71.  
  72. if ($typenow) { 
  73. $this->loadAdminPage($typenow); 
  74.  
  75. // ==================================================================================================================================== 
  76. /** 
  77. * load admin page for custom post type 
  78. * @param string $typenow post type 
  79. */ 
  80. // ==================================================================================================================================== 
  81. protected function loadAdminPage($typenow) { 
  82. if (!$this->adminPage) { 
  83. if ($typenow == GFPAYSTATION_TYPE_FEED) { 
  84. $this->adminPage = new GFPaystationFeedAdmin($this->plugin); 
  85.  
  86. // ==================================================================================================================================== 
  87. /** 
  88. * enqueue our admin stylesheet 
  89. */ 
  90. // ==================================================================================================================================== 
  91. public function enqueueScripts() { 
  92. wp_enqueue_style('gfpaystation-admin', "{$this->plugin->urlBase}style-admin.css", false, GFPAYSTATION_PLUGIN_VERSION); 
  93.  
  94. // ==================================================================================================================================== 
  95. /** 
  96. * show admin messages - this will show a message at the top of the screen in red if Gravity forms is not installed and activated. 
  97. * the message appears on any page of the admin screens. 
  98. */ 
  99. // ==================================================================================================================================== 
  100. public function actionAdminNotices() { 
  101. if (!self::isGfActive()) { 
  102. $this->plugin->showError('GravityForms Paystation (3 party hosted) plugin requires <a href="http://www.gravityforms.com/">GravityForms</a> plugin to be installed and activated.'); 
  103.  
  104. // ==================================================================================================================================== 
  105. /** 
  106. * Action hook for adding plugin action links, adds the settings link in the plugins list. 
  107. */ 
  108. // ==================================================================================================================================== 
  109. public function addPluginActionLinks($links) { 
  110. // Add settings link, but only if GravityForms plugin is active. 
  111. if (self::isGfActive()) { 
  112. $settings_link = '<a href="admin.php?page=' . self::MENU_PAGE . '-options">' . __('Settings') . '</a>'; 
  113. array_unshift($links, $settings_link); 
  114.  
  115. return $links; 
  116.  
  117. // ==================================================================================================================================== 
  118. /** 
  119. * filter hook for building GravityForms navigation 
  120. * @param array $menus 
  121. * @return array 
  122. */ 
  123. // ==================================================================================================================================== 
  124. public function gformAddonNavigation($menus) { 
  125. // Add menu item for options - this is the Paystation (3 party) item in the forms menu. 
  126. $menus[] = array('name' => self::MENU_PAGE.'-options', 'label' => 'Paystation (3 party)', 'callback' => array($this, 'optionsAdmin'), 'permission' => 'manage_options'); 
  127. return $menus; 
  128.  
  129. // ==================================================================================================================================== 
  130. /** 
  131. * action hook for processing admin menu item 
  132. */ 
  133. // ==================================================================================================================================== 
  134. public function optionsAdmin() { 
  135. $admin = new GFPaystationOptionsAdmin($this->plugin, self::MENU_PAGE.'-options'); 
  136. $admin->process(); 
  137.  
  138. // ==================================================================================================================================== 
  139. /** 
  140. * AJAX action to check for GF form already has feed, returning feed ID 
  141. * Becase these are called via ajax, they echo out the results. 
  142. */ 
  143. // ==================================================================================================================================== 
  144. public function ajaxGfFormHasFeed() { 
  145. $formID = isset($_GET['id']) ? $_GET['id'] : 0; 
  146.  
  147. if (!$formID) { 
  148. die("Bad form ID: $formID"); 
  149.  
  150. $feed = GFPaystationFeed::getFormFeed($formID); 
  151. echo $feed ? $feed->ID : 0; 
  152. exit; 
  153.  
  154. // ==================================================================================================================================== 
  155. /** 
  156. * AJAX action for getting a list of form fields for a form 
  157. * Becase these are called via ajax, they echo out the results. 
  158. */ 
  159. // ==================================================================================================================================== 
  160. public function ajaxGfFormFields() { 
  161. $formID = isset($_GET['id']) ? $_GET['id'] : 0; 
  162.  
  163. if (!$formID) { 
  164. die("Bad form ID: $formID"); 
  165.  
  166. $fields = GFPaystationFeedAdmin::getFormFields($formID); 
  167. $html = GFPaystationFeedAdmin::selectFields('', $fields); 
  168.  
  169. echo $html; 
  170. exit;