Skip to content
Snippets Groups Projects
civicrm.php 38 KiB
Newer Older
  • Learn to ignore specific revisions
  • Kevin Cristiano's avatar
    Kevin Cristiano committed
        if (!$this->initialize()) {
          return;
        }
    
        $config = CRM_Core_Config::singleton();
    
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        // Default custom CSS to standalone.
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        $dependent = NULL;
    
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        // Load core CSS.
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        if (!CRM_Core_BAO_Setting::getItem(CRM_Core_BAO_Setting::SYSTEM_PREFERENCES_NAME, 'disable_core_css')) {
    
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
          // Enqueue stylesheet.
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
          wp_enqueue_style(
            'civicrm_css',
            $config->resourceBase . 'css/civicrm.css',
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
            // Dependencies.
            NULL,
            // Version.
            CIVICRM_PLUGIN_VERSION,
            // Media.
            'all'
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
          // Custom CSS is dependent.
          $dependent = ['civicrm_css'];
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        // Load custom CSS.
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        if (!empty($config->customCSSURL)) {
          wp_enqueue_style(
            'civicrm_custom_css',
            $config->customCSSURL,
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
            // Dependencies.
            $dependent,
            // Version.
            CIVICRM_PLUGIN_VERSION,
            // Media.
            'all'
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        // Set flag so this only happens once.
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        $frontend_css_loaded = TRUE;
    
      }
    
      /**
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
       * Add CiviCRM core resources.
       *
       * @since 4.6
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
       *
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
       * @param bool $front_end True if on WordPress front end, false otherwise.
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
       */
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
      public function add_core_resources($front_end = TRUE) {
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
    
        if (!$this->initialize()) {
          return;
        }
    
        $config = CRM_Core_Config::singleton();
        $config->userFrameworkFrontend = $front_end;
    
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        // Add CiviCRM core resources.
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        CRM_Core_Resources::singleton()->addCoreResources();
    
      }
    
      /**
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
       * Merge CiviCRM's HTML header with the WordPress theme's header.
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
       *
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
       * Callback from WordPress 'admin_head' and 'wp_head' hooks.
       *
       * @since 4.4
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
       */
      public function wp_head() {
    
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        if (!$this->initialize()) {
          return;
        }
    
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        /*
         * CRM-11823
         * If CiviCRM bootstrapped, then merge its HTML header with the CMS's header.
         */
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        global $civicrm_root;
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        if (empty($civicrm_root)) {
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
          return;
        }
    
        $region = CRM_Core_Region::instance('html-header', FALSE);
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        if ($region) {
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
          echo '<!-- CiviCRM html header -->';
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
          echo $region->render('');
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        }
    
      }
    
      // ---------------------------------------------------------------------------
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
      // CiviCRM Invocation (this outputs CiviCRM's markup)
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
      // ---------------------------------------------------------------------------
    
      /**
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
       * Invoke CiviCRM in a WordPress context.
       *
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
       * Callback function from add_menu_page()
       * Callback from WordPress 'init' and 'the_content' hooks
       * Also called by shortcode_render() and _civicrm_update_user()
       *
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
       * @since 4.4
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
       */
      public function invoke() {
    
        static $alreadyInvoked = FALSE;
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        if ($alreadyInvoked) {
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
          return;
        }
    
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        // Bail if this is called via a content-preprocessing plugin.
        if ($this->is_page_request() && !in_the_loop() && !is_admin()) {
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
          return;
        }
    
        if (!$this->initialize()) {
          return;
        }
    
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        /*
         * CRM-12523
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
         * WordPress has it's own timezone calculations. CiviCRM relies on the PHP
         * default timezone which WordPress overrides with UTC in wp-settings.php
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        $wpBaseTimezone = date_default_timezone_get();
        $wpUserTimezone = get_option('timezone_string');
        if ($wpUserTimezone) {
          date_default_timezone_set($wpUserTimezone);
          CRM_Core_Config::singleton()->userSystem->setMySQLTimeZone();
        }
    
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        /*
         * CRM-95XX
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
         * At this point we are in a CiviCRM context. WordPress always quotes the
         * request, so CiviCRM needs to reverse what it just did.
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        $this->remove_wp_magic_quotes();
    
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        // Required for AJAX calls.
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        if ($this->civicrm_in_wordpress()) {
          $_REQUEST['noheader'] = $_GET['noheader'] = TRUE;
        }
    
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        // Code inside invoke() requires the current user to be set up.
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        $current_user = wp_get_current_user();
    
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
         * Bypass synchronize if running upgrade to avoid any serious non-recoverable
         * error which might hinder the upgrade process.
         */
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        if (CRM_Utils_Array::value('q', $_GET) != 'civicrm/upgrade') {
          $this->users->sync_user($current_user);
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        // Set flag.
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        $alreadyInvoked = TRUE;
    
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        // Get args.
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        $argdata = $this->get_request_args();
    
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        // Set dashboard as default if args are empty.
        if (empty($argdata['argString'])) {
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
          $_GET['q'] = 'civicrm/dashboard';
          $_GET['reset'] = 1;
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
          $argdata['args'] = ['civicrm', 'dashboard'];
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        // Do the business.
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        CRM_Core_Invoke::invoke($argdata['args']);
    
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        // Restore WordPress's timezone.
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        if ($wpBaseTimezone) {
          date_default_timezone_set($wpBaseTimezone);
        }
    
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        // Restore WordPress's arrays.
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        $this->restore_wp_magic_quotes();
    
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        /**
         * Broadcast that CiviCRM has been invoked.
         *
         * @since 4.4
         */
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        do_action('civicrm_invoked');
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
       * Non-destructively override WordPress magic quotes.
       *
       * Only called by invoke() to undo WordPress default behaviour.
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
       *
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
       * @since 4.4
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
       * @since 5.7 Rewritten to work with query vars.
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
       */
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
      private function remove_wp_magic_quotes() {
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
    
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        // Save original arrays.
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        $this->wp_get     = $_GET;
        $this->wp_post    = $_POST;
        $this->wp_cookie  = $_COOKIE;
        $this->wp_request = $_REQUEST;
    
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        // Reassign globals.
        $_GET     = stripslashes_deep($_GET);
        $_POST    = stripslashes_deep($_POST);
        $_COOKIE  = stripslashes_deep($_COOKIE);
        $_REQUEST = stripslashes_deep($_REQUEST);
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        // Test for query var.
        $q = get_query_var('q');
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        if (!empty($q)) {
    
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
          $page = get_query_var('civiwp');
          $reset = get_query_var('reset');
          $id = get_query_var('id');
          $html = get_query_var('html');
          $snippet = get_query_var('snippet');
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
          $action = get_query_var('action');
          $mode = get_query_var('mode');
          $cid = get_query_var('cid');
          $gid = get_query_var('gid');
          $sid = get_query_var('sid');
          $cs = get_query_var('cs');
          $force = get_query_var('force');
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
    
          $_REQUEST['q'] = $_GET['q'] = $q;
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
          $_REQUEST['civiwp'] = $_GET['civiwp'] = 'CiviCRM';
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
          if (!empty($reset)) {
            $_REQUEST['reset'] = $_GET['reset'] = $reset;
          }
          if (!empty($id)) {
            $_REQUEST['id'] = $_GET['id'] = $id;
          }
          if (!empty($html)) {
            $_REQUEST['html'] = $_GET['html'] = $html;
          }
          if (!empty($snippet)) {
            $_REQUEST['snippet'] = $_GET['snippet'] = $snippet;
          }
    
          if (!empty($action)) {
            $_REQUEST['action'] = $_GET['action'] = $action;
          }
          if (!empty($mode)) {
            $_REQUEST['mode'] = $_GET['mode'] = $mode;
          }
          if (!empty($cid)) {
            $_REQUEST['cid'] = $_GET['cid'] = $cid;
          }
          if (!empty($gid)) {
            $_REQUEST['gid'] = $_GET['gid'] = $gid;
          }
          if (!empty($sid)) {
            $_REQUEST['sid'] = $_GET['sid'] = $sid;
          }
          if (!empty($cs)) {
            $_REQUEST['cs'] = $_GET['cs'] = $cs;
          }
          if (!empty($force)) {
            $_REQUEST['force'] = $_GET['force'] = $force;
          }
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
    
          /**
           * Broadcast that CiviCRM query vars have been assigned.
           *
           * Use in combination with `civicrm_query_vars` filter to ensure that any
           * other query vars are included in the assignment to the super-global
           * arrays.
           *
           * @since 5.7
           */
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
          do_action('civicrm_query_vars_assigned');
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
       * Restore WordPress magic quotes.
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
       *
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
       * Only called by invoke() to redo WordPress default behaviour.
       *
       * @since 4.4
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
       */
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
      private function restore_wp_magic_quotes() {
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
    
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        // Restore original arrays.
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        $_GET     = $this->wp_get;
        $_POST    = $this->wp_post;
        $_COOKIE  = $this->wp_cookie;
        $_REQUEST = $this->wp_request;
    
      }
    
      /**
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
       * Detect Ajax, snippet, or file requests.
       *
       * @since 4.4
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
       *
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
       * @return boolean True if request is for a CiviCRM page, false otherwise.
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
       */
      public function is_page_request() {
    
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        // Assume not a CiviCRM page.
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        $return = FALSE;
    
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        // Kick out if not CiviCRM.
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        if (!$this->initialize()) {
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
          return $return;
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        // Get args.
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        $argdata = $this->get_request_args();
    
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        // Grab query var.
        $html = get_query_var('html');
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        if (empty($html)) {
          $html = isset($_GET['html']) ? $_GET['html'] : '';
        }
    
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        /*
         * FIXME: It's not sustainable to hardcode a whitelist of all of non-HTML
         * pages. Maybe the menu-XML should include some metadata to make this
         * unnecessary?
         */
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        if (CRM_Utils_Array::value('HTTP_X_REQUESTED_WITH', $_SERVER) == 'XMLHttpRequest'
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
            || ($argdata['args'][0] == 'civicrm' && in_array($argdata['args'][1], ['ajax', 'file']))
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
            || !empty($_REQUEST['snippet'])
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
            || strpos($argdata['argString'], 'civicrm/event/ical') === 0 && empty($html)
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
            || strpos($argdata['argString'], 'civicrm/contact/imagefile') === 0
        ) {
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
          $return = FALSE;
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        }
        else {
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
          $return = TRUE;
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        }
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
    
        return $return;
    
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
       * Get arguments and request string from query vars.
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
       *
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
       * @since 4.6
       *
       * @return array $argdata Array containing request arguments and request string.
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
       */
      public function get_request_args() {
    
        $argString = NULL;
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        $args = [];
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        // Get path from query vars.
        $q = get_query_var('q');
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        if (empty($q)) {
          $q = isset($_GET['q']) ? $_GET['q'] : '';
        }
    
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        /*
         * Fix 'civicrm/civicrm' elements derived from CRM:url()
         * @see https://lab.civicrm.org/dev/rc/issues/5#note_16205
         */
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        if (defined('CIVICRM_CLEANURL') && CIVICRM_CLEANURL) {
          if (substr($q, 0, 16) === 'civicrm/civicrm/') {
            $q = str_replace('civicrm/civicrm/', 'civicrm/', $q);
            $_REQUEST['q'] = $_GET['q'] = $q;
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
            set_query_var('q', $q);
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
          }
        }
    
        if (!empty($q)) {
          $argString = trim($q);
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
          // Remove / from the beginning and ending of query string.
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
          $argString = trim($argString, '/');
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
          $args = explode('/', $argString);
        }
        $args = array_pad($args, 2, '');
    
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        return [
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
          'args' => $args,
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
          'argString' => $argString,
        ];
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
       * Get base URL.
       *
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
       * Clone of CRM_Utils_System_WordPress::getBaseUrl() whose access is set to
       * private. Until it is public, we cannot access the URL of the basepage since
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
       * CRM_Utils_System_WordPress::url().
       *
    
       * 27-09-2016
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
       * CRM-16421 CRM-17633 WIP Changes to support WordPress in it's own directory.
    
       * https://wiki.civicrm.org/confluence/display/CRM/WordPress+installed+in+its+own+directory+issues
       * For now leave hard coded wp-admin references.
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
       * TODO: remove wp-admin references and replace with admin_url() in the future.
       * TODO: Look at best way to get path to admin_url.
       *
       * @since 4.4
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
       *
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
       * @param bool $absolute Passing TRUE prepends the scheme and domain, FALSE doesn't.
       * @param bool $frontend Passing FALSE returns the admin URL.
       * @param $forceBackend Passing TRUE overrides $frontend and returns the admin URL.
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
       * @return mixed|null|string
       */
      public function get_base_url($absolute, $frontend, $forceBackend) {
    
        $config = CRM_Core_Config::singleton();
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        if ((is_admin() && !$frontend) || $forceBackend) {
    
          return Civi::paths()->getUrl('[wp.backend]/.', $absolute ? 'absolute' : 'relative');
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
        }
    
        else {
          return Civi::paths()->getUrl('[wp.frontend]/.', $absolute ? 'absolute' : 'relative');
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
    }
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
     * -----------------------------------------------------------------------------
     * Procedures start here
     * -----------------------------------------------------------------------------
     */
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
    
    /**
     * The main function responsible for returning the CiviCRM_For_WordPress instance
     * to functions everywhere.
     *
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
     * Use this function like you would a global variable, except without needing to
     * declare the global.
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
     *
     * Example: $civi = civi_wp();
     *
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
     * @since 4.4
     *
     * @return CiviCRM_For_WordPress The plugin instance.
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
     */
    function civi_wp() {
      return CiviCRM_For_WordPress::singleton();
    }
    
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
    /*
     * Instantiate CiviCRM_For_WordPress immediately.
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
     *
     * @see CiviCRM_For_WordPress::setup_instance()
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
     */
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
    civi_wp();
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
    
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
     * Tell WordPress to call plugin activation method - no longer calls legacy
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
     * global scope function.
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
     */
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
    register_activation_hook(CIVICRM_PLUGIN_FILE, [civi_wp(), 'activate']);
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
    
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
     * Tell WordPress to call plugin deactivation method - needed in order to reset
     * the option that is set on activation.
     */
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
    register_deactivation_hook(CIVICRM_PLUGIN_FILE, [civi_wp(), 'deactivate']);
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
     * Uninstall uses the 'uninstall.php' method.
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
     * @see https://developer.wordpress.org/reference/functions/register_uninstall_hook/
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
    // Include legacy global scope functions.
    include_once CIVICRM_PLUGIN_DIR . 'includes/civicrm.functions.php';
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
    
    /**
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
     * Incorporate WP-CLI Integration.
     *
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
     * Based on drush CiviCRM functionality, work done by Andy Walker.
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
     * https://github.com/andy-walker/wp-cli-civicrm
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
     *
     * @since 4.5
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
     */
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
    if (defined('WP_CLI') && WP_CLI) {
      // Changed from __DIR__ because of possible symlink issues.
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
      include_once CIVICRM_PLUGIN_DIR . 'wp-cli/civicrm.php';
    }