/** * @param array $attributes * @param string $content * * @return null|string */ function do_shortcode($attributes, $content = null) { if (empty($attributes) && !is_array($attributes)) { $attributes = array(); } $this->used = 'yes'; return $this->plugin->do_shortcode($this, $attributes, $content); }
/** * @return Sidecar_Form_Settings */ function get_settings() { if (!isset($this->_settings)) { $this->_settings = $this->plugin->get_form_settings($this->form_name); } return $this->_settings; }
/** * Determines if this tab has one of more form(s) that require an API. * * @return bool */ function requires_api() { $requires_api = false; /** * @var string|array|Sidecar_Form $form */ foreach ($this->forms as $index => $form) { if (!is_object($form)) { $form = $this->plugin->get_form($form); } if ($form->requires_api) { $requires_api = true; break; } } return $requires_api; }
/** * Check to make sure we are on the right tab. * * Redirect if we are not on the right tab based on authentication status or invalid tab, * OR return if not even on this plugin's Admin URL * Register an error message for later display if not authenticated. * * @return bool Returns true if we are on a verified tab, false or URL redirect otherwise. */ function verify_current_tab() { /* * If we have no tabs trying to verify is a moot point. Punt. */ if (!$this->has_tabs()) { return true; } $needs_grant = $this->plugin->needs_grant(); $has_grant = $this->plugin->has_grant(); if (!$this->is_current_tab_valid()) { /** * If we don't have a valid tab and we are using an API, redirect to first tab if we have an grant or authentication tab if not. * * We redirect to avoid having multiple URLs mean the same thing which would not be optimal for bookmarking, caching, etc. */ if ($needs_grant && $has_grant) { /** * If authenticated we redirect with a "301 - This URL has changed" status code so the browser can know * to go to 'usage' whenever is sees this URL and avoid the round trip next time. */ wp_safe_redirect($this->get_tab_url($this->get_default_tab()->tab_slug), 301); exit; } else { if ($needs_grant && ($auth_tab = $this->get_authentication_tab())) { /** * If not authenticated we redirect with a "302 - This URL has moved temporarily" status code * because normally we'd want to go to usage, so don't cause browser to thing this URL w/o a * valid tab should always go to 'account.' */ wp_safe_redirect($this->get_tab_url($auth_tab->tab_slug), 302); exit; } } } else { if ($needs_grant && !$has_grant) { /** * If we are using an API but we don't have a grant */ $auth_tab = $this->get_authentication_tab(); /** * If there is a tab and we are not already on the authentication tab */ if ($auth_tab && (!isset($_GET['tab']) || $auth_tab->tab_slug != $_GET['tab'])) { /** * ...and we are NOT on the authentication tab then redirect to the 'account' tab. * * We redirect with a "302 - This URL has moved temporarily" because it's still a good URL and * we want the browser to be happy to return here later. */ wp_safe_redirect($this->get_tab_url($auth_tab), 302); exit; } else { /** * ...and we ARE on the authentication tab then prepare a "Need to authenticate" message for later display. */ add_settings_error($this->plugin->plugin_slug, 'need-info', __('You must have an account to use this plugin. Please enter your credentials.', 'sidecar')); } } } return true; }
/** * @todo verify this is needed in base class * @param bool $is_encrypted */ function set_encrypted($is_encrypted) { $this->_parent->set_encrypted($is_encrypted); }