From 923a6fc1326e3f1ae90ea3d0fe686b0cb9bf638a Mon Sep 17 00:00:00 2001 From: Chuck Scott Date: Thu, 26 Jul 2018 11:42:02 -0400 Subject: [PATCH] Adding requests for search engine to index, re-index, or remove an event from search results Also updated name of plugin in Index and readme files as part of move to GLM Associate name. --- index.php | 8 +- models/admin/events/list.php | 141 ++++++++++++++++++++--------------- readme.txt | 8 +- 3 files changed, 90 insertions(+), 67 deletions(-) diff --git a/index.php b/index.php index 0179606..2e028f2 100644 --- a/index.php +++ b/index.php @@ -1,18 +1,18 @@ config['status_numb']['Active']; + $eventSlug = $event['fieldData']['name_slug']; + } else { $option = 'add'; $eventAddError = true; @@ -383,7 +389,8 @@ class GlmMembersAdmin_events_list extends GlmDataEvents // Add any recurrence data that may have been submitted // if (isset($_REQUEST[''])) { // NOT COMPLETED - // } + // }echo "
".print_r($event,1)."
"; + } @@ -393,8 +400,6 @@ class GlmMembersAdmin_events_list extends GlmDataEvents case 'edit': - - $event = $this->editEntry($this->eventID); // If we have a good event @@ -437,10 +442,10 @@ class GlmMembersAdmin_events_list extends GlmDataEvents // Check if that was successful if ($event['status']) { $eventUpdated = true; + $new_status = $event['fieldData']['status']['value']; // Check if the event is being approved if ( $event['fieldData']['status']['value'] && $old_event_status ) { - $new_status = $event['fieldData']['status']['value']; if ( $old_event_status == 20 && $new_status == 10 ) { // Update approved timestamp. $this->updateTimestamp('approved', $this->eventID); @@ -459,6 +464,16 @@ class GlmMembersAdmin_events_list extends GlmDataEvents $this->updateSlug($this->eventID); $event = $this->editEntry($this->eventID); + + // Check for status change for any search engine requests. + $statusActive = $this->config['event_status_numb']['Active']; + $eventSlug = $event['fieldData']['name_slug']; + if ($new_status == $statusActive) { + $indexEvent = true; + } elseif ($old_event_status == $statusActive && $new_status != $statusActive) { + $removeEventIndex = true; + } + } else { $eventUpdateError = true; } @@ -614,6 +629,11 @@ class GlmMembersAdmin_events_list extends GlmDataEvents if ($event) { $eventDeleted = true; + + // Also ask to have event removed from search engine + $removeEventIndex = true; + $eventSlug = $event['name_slug']; + glmClearShortcodeCache(); } else { $eventDeleteError = true; @@ -900,64 +920,67 @@ class GlmMembersAdmin_events_list extends GlmDataEvents } - // DECLINED & APPROVED EVENT EMAIL FUNCTIONALITY /////// - //$sql = "SELECT * FROM " . GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . "email_notifications"; - //$email_notifications = !empty($this->wpdb->get_results($sql, ARRAY_A)) ? $this->wpdb->get_results($sql, ARRAY_A)[0] : false; - $email_notifications = $this->config['settings']; - $from_email = $email_notifications ? $email_notifications['from_email'] : false; -// echo '
', print_r($event), '
'; - - $to_email = (isset($event['fieldData']['admin_email']) ? $event['fieldData']['admin_email'] : '' ); - $event_title = (isset($event['fieldData']['name']) ? $event['fieldData']['name'] : '' ); - $admin_name = (isset($event['fieldData']['admin_name']) ? $event['fieldData']['admin_name'] : '' ); - $event_intro = (isset($event['fieldData']['intro']) ? $event['fieldData']['intro'] : '' ); - $site_name = get_bloginfo( 'name' ); - - $header[] = "From: $site_name <$from_email>"; - $header[] = 'Reply-To: ' . $from_email; - $header[] = "Return-Path: $from_email"; - - // change the default wordpress from name when sending mail - function set_content_type(){ - return "text/html"; - } -// add_filter( -// 'wp_mail_from_name', -// function ( $name ) { -// $siteName = get_bloginfo( 'name' ); -// return $siteName; -// } -// ); - - // Send confirmation email, set the content type to allow html by using this filter - add_filter( 'wp_mail_content_type', 'set_content_type' ); - - $declined = ''; - $current_status = $event['fieldData']['status']['value']; - - if($to_email){ - $message = $site_name . " Events

"; - $message .= "Event Name: " . $event_title . "
"; - $message .= "Event Description: $event_intro
"; - $message .= "Contact Name: $admin_name

"; - - - if( $old_event_status === '20' && $current_status === '10' ) { - $subject = 'Event Approved'; - $message .= $email_notifications['approved_message']; - wp_mail( $to_email, $subject, $message, $header ); - - } else if( $old_event_status === '20' && $current_status === '40' ){ - $declined = $email_notifications['declined_message']; - $subject = 'Event Declined'; - $message .= "Your event has been declined for the following reason(s):
$declined"; - wp_mail( $to_email, $subject, $message, $header ); - } + // DECLINED & APPROVED EVENT EMAIL FUNCTIONALITY /////// + //$sql = "SELECT * FROM " . GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . "email_notifications"; + //$email_notifications = !empty($this->wpdb->get_results($sql, ARRAY_A)) ? $this->wpdb->get_results($sql, ARRAY_A)[0] : false; + $email_notifications = $this->config['settings']; + $from_email = $email_notifications ? $email_notifications['from_email'] : false; + + $to_email = (isset($event['fieldData']['admin_email']) ? $event['fieldData']['admin_email'] : '' ); + $event_title = (isset($event['fieldData']['name']) ? $event['fieldData']['name'] : '' ); + $admin_name = (isset($event['fieldData']['admin_name']) ? $event['fieldData']['admin_name'] : '' ); + $event_intro = (isset($event['fieldData']['intro']) ? $event['fieldData']['intro'] : '' ); + $site_name = get_bloginfo( 'name' ); + + $header[] = "From: $site_name <$from_email>"; + $header[] = 'Reply-To: ' . $from_email; + $header[] = "Return-Path: $from_email"; + + // change the default wordpress from name when sending mail + function set_content_type(){ + return "text/html"; + } + + // Send confirmation email, set the content type to allow html by using this filter + add_filter( 'wp_mail_content_type', 'set_content_type' ); + + $declined = ''; + $current_status = $event['fieldData']['status']['value']; + + if($to_email){ + $message = $site_name . " Events

"; + $message .= "Event Name: " . $event_title . "
"; + $message .= "Event Description: $event_intro
"; + $message .= "Contact Name: $admin_name

"; + + + if( $old_event_status === '20' && $current_status === '10' ) { + $subject = 'Event Approved'; + $message .= $email_notifications['approved_message']; + wp_mail( $to_email, $subject, $message, $header ); + + } else if( $old_event_status === '20' && $current_status === '40' ){ + $declined = $email_notifications['declined_message']; + $subject = 'Event Declined'; + $message .= "Your event has been declined for the following reason(s):
$declined"; + wp_mail( $to_email, $subject, $message, $header ); } - remove_filter( 'wp_mail_content_type', 'set_content_type' ); - // END DECLINED & APPROVED EVENT EMAIL FUNCTIONALITY //////// + } + remove_filter( 'wp_mail_content_type', 'set_content_type' ); + // END DECLINED & APPROVED EVENT EMAIL FUNCTIONALITY //////// + + // Deterine if we need to request search engine index, re-index, or removal + $url = GLM_MEMBERS_SITE_BASE_URL.$this->config['settings']['canonical_event_page'].'/'.$eventSlug.'/'; + if ($indexEvent) { + echo "Index $url

"; + $result = apply_filters( 'glm_member_db_common_search_indexurl', $url ); + } + if ($removeEventIndex) { + echo "remove $url

"; + $result = apply_filters( 'glm_member_db_common_search_removeurl', $url ); + } if (!$this->config['settings']['event_default_state']) { $this->config['settings']['event_default_state'] = $this->config['settings']['default_state']; diff --git a/readme.txt b/readme.txt index cb4c234..3bc7eaa 100644 --- a/readme.txt +++ b/readme.txt @@ -1,4 +1,4 @@ -=== Gaslight Media Member Database Events Add-On Plugin === +=== GLM Associate - Events Add-On === Contributors: cscott@gaslightmedia.com Donate link: http://www.gaslightmedia.com Tags: Gaslight Media,Plugin,Members Events @@ -8,12 +8,12 @@ Stable tag: 4.3 License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html -This is the Gaslight Media Members Database Events Add-On Plugin. +This is the Gaslight Media Glm Associate Events Add-On Plugin. == Description == -The Gaslight Media Members Database Events Add-On Plugin adds Events capabilities to the base plugin. -The Gaslight Media base Members Database plugin (or later core plugin) is required to activate this add-on. +The Gaslight Media GLM Associate Events Add-On Plugin adds Events capabilities to the base plugin. +The Gaslight Media GLM Associate core plugin with Members Database (or later core plugin) is required to activate this add-on. == Installation == -- 2.17.1