304 lines
6.7 KiB
PHP
304 lines
6.7 KiB
PHP
|
<?php
|
|||
|
/**
|
|||
|
* Helper functions for plugin
|
|||
|
* @author awesome.ug, Author <support@awesome.ug>
|
|||
|
* @package Questions/Core
|
|||
|
* @version 1.0.0
|
|||
|
* @since 1.0.0
|
|||
|
* @license GPL 2
|
|||
|
|
|||
|
Copyright 2015 awesome.ug (support@awesome.ug)
|
|||
|
|
|||
|
This program is free software; you can redistribute it and/or modify
|
|||
|
it under the terms of the GNU General Public License, version 2, as
|
|||
|
published by the Free Software Foundation.
|
|||
|
|
|||
|
This program is distributed in the hope that it will be useful,
|
|||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|||
|
GNU General Public License for more details.
|
|||
|
|
|||
|
You should have received a copy of the GNU General Public License
|
|||
|
along with this program; if not, write to the Free Software
|
|||
|
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|||
|
|
|||
|
*/
|
|||
|
|
|||
|
if ( ! defined( 'ABSPATH' ) ) {
|
|||
|
exit;
|
|||
|
}
|
|||
|
|
|||
|
/*
|
|||
|
* Getting Plugin Template
|
|||
|
* @since 1.0.0
|
|||
|
*/
|
|||
|
if ( defined( 'QUESTIONS_FOLDER' ) ):
|
|||
|
function qu_locate_template( $template_names, $load = FALSE, $require_once = TRUE ) {
|
|||
|
|
|||
|
$located = locate_template( $template_names, $load, $require_once );
|
|||
|
|
|||
|
if ( '' == $located ):
|
|||
|
foreach ( ( array ) $template_names as $template_name ):
|
|||
|
if ( ! $template_name ) {
|
|||
|
continue;
|
|||
|
}
|
|||
|
if ( file_exists( QUESTIONS_FOLDER . '/templates/' . $template_name ) ):
|
|||
|
$located = QUESTIONS_FOLDER . '/templates/' . $template_name;
|
|||
|
break;
|
|||
|
endif;
|
|||
|
endforeach;
|
|||
|
endif;
|
|||
|
|
|||
|
if ( $load && '' != $located ) {
|
|||
|
load_template( $located, $require_once );
|
|||
|
}
|
|||
|
|
|||
|
return $located;
|
|||
|
}
|
|||
|
endif;
|
|||
|
|
|||
|
/**
|
|||
|
* Getting standard mailtext strings
|
|||
|
* @param string $mailtext_title Type of mailtext which have to be chosen
|
|||
|
* @return string $mailtext Mailtext as String
|
|||
|
*/
|
|||
|
function qu_get_mail_template_text( $mailtext_title ) {
|
|||
|
|
|||
|
$text = '';
|
|||
|
switch ( $mailtext_title ) {
|
|||
|
case 'thankyou_participating':
|
|||
|
$text = stripslashes( get_option( 'questions_thankyou_participating_text_template' ) );
|
|||
|
if ( empty( $text ) ):
|
|||
|
$text = esc_attr__(
|
|||
|
'Dear %username%,
|
|||
|
|
|||
|
thank you for participating on the survey "%survey_title%". Your survey data was saved successfully.
|
|||
|
|
|||
|
Best regards,
|
|||
|
|
|||
|
%site_name%', 'questions-locale'
|
|||
|
);
|
|||
|
endif;
|
|||
|
|
|||
|
break;
|
|||
|
|
|||
|
case 'invitation':
|
|||
|
$text = stripslashes( get_option( 'questions_invitation_text_template' ) );
|
|||
|
if ( empty( $text ) ):
|
|||
|
$text = esc_attr__(
|
|||
|
'Dear %username%,
|
|||
|
|
|||
|
you have been invited to participate to the survey "%survey_title%". Participate here:
|
|||
|
|
|||
|
%survey_url%
|
|||
|
|
|||
|
Best regards,
|
|||
|
|
|||
|
%site_name%', 'questions-locale'
|
|||
|
);
|
|||
|
endif;
|
|||
|
|
|||
|
break;
|
|||
|
|
|||
|
case 'reinvitation':
|
|||
|
$text = stripslashes( get_option( 'questions_reinvitation_text_template' ) );
|
|||
|
if ( empty( $text ) ):
|
|||
|
$text = esc_attr__(
|
|||
|
'Dear %username%,
|
|||
|
|
|||
|
the survey "%survey_title%" is not finished yet. Please fill out and finish the survey. Participate here:
|
|||
|
|
|||
|
%survey_url%
|
|||
|
|
|||
|
Best regards,
|
|||
|
|
|||
|
%site_name%', 'questions-locale'
|
|||
|
);
|
|||
|
endif;
|
|||
|
|
|||
|
break;
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
return $text;
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* Getting standard mailsubject strings
|
|||
|
* @param string $mailtext_title Type of mail subject which have to be chosen
|
|||
|
* @return string $mailtext Mail subject as String
|
|||
|
*/
|
|||
|
function qu_get_mail_template_subject( $mailsubject_title ) {
|
|||
|
|
|||
|
$text = '';
|
|||
|
switch ( $mailsubject_title ) {
|
|||
|
case 'thankyou_participating':
|
|||
|
$text = stripslashes( get_option( 'questions_thankyou_participating_subject_template' ) );
|
|||
|
if ( empty( $text ) ):
|
|||
|
$text = esc_attr__( 'Thank you for participating!', 'questions-locale' );
|
|||
|
endif;
|
|||
|
|
|||
|
break;
|
|||
|
|
|||
|
case 'invitation':
|
|||
|
$text = stripslashes( get_option( 'questions_invitation_subject_template' ) );
|
|||
|
if ( empty( $text ) ):
|
|||
|
$text = esc_attr__( 'You are invited to answer a survey', 'questions-locale' );
|
|||
|
endif;
|
|||
|
|
|||
|
break;
|
|||
|
|
|||
|
case 'reinvitation':
|
|||
|
$text = stripslashes( get_option( 'questions_reinvitation_subject_template' ) );
|
|||
|
if ( empty( $text ) ):
|
|||
|
$text = esc_attr__( 'Don´t forget to answer the Survey', 'questions-locale' );
|
|||
|
endif;
|
|||
|
|
|||
|
break;
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
return $text;
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* Get mail sender settings
|
|||
|
* @param $option string Mail sender option to get
|
|||
|
* @return mixed $setting Setting
|
|||
|
*/
|
|||
|
function qu_get_mail_settings( $option ) {
|
|||
|
|
|||
|
$setting = '';
|
|||
|
switch ( $option ) {
|
|||
|
case 'from_name':
|
|||
|
$setting = stripslashes( get_option( 'questions_mail_from_name' ) );
|
|||
|
|
|||
|
if ( empty( $setting ) ):
|
|||
|
$setting = get_option( 'blogname' );
|
|||
|
endif;
|
|||
|
|
|||
|
break;
|
|||
|
|
|||
|
case 'from_email':
|
|||
|
$setting = stripslashes( get_option( 'questions_mail_from_email' ) );
|
|||
|
|
|||
|
if ( empty( $setting ) ):
|
|||
|
$setting = get_option( 'admin_email' );
|
|||
|
endif;
|
|||
|
|
|||
|
break;
|
|||
|
}
|
|||
|
|
|||
|
return $setting;
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* Shortener to get email return name from options
|
|||
|
* @return string $from_name "From" name
|
|||
|
*/
|
|||
|
function qu_change_email_return_name() {
|
|||
|
|
|||
|
return qu_get_mail_settings( 'from_name' );
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* Shortener to get email return address from options
|
|||
|
* @return string $from_email "From" email address
|
|||
|
*/
|
|||
|
function qu_change_email_return_address() {
|
|||
|
|
|||
|
return qu_get_mail_settings( 'from_email' );
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* Own Email function
|
|||
|
* @param string $to_email Mail address for sending to
|
|||
|
* @param string $subject Subject of mail
|
|||
|
* @param string $content
|
|||
|
* @return bool
|
|||
|
*/
|
|||
|
function qu_mail( $to_email, $subject, $content ) {
|
|||
|
|
|||
|
add_filter( 'wp_mail_from_name', 'qu_change_email_return_name' );
|
|||
|
add_filter( 'wp_mail_from', 'qu_change_email_return_address' );
|
|||
|
|
|||
|
$result = wp_mail( $to_email, $subject, $content );
|
|||
|
|
|||
|
// Logging
|
|||
|
$content = str_replace( chr( 13 ), '', strip_tags( $content ) );
|
|||
|
qu_create_log_entry( array( $to_email, $subject, $content ) );
|
|||
|
|
|||
|
remove_filter( 'wp_mail_from_name', 'qu_change_email_return_name' );
|
|||
|
remove_filter( 'wp_mail_from', 'qu_change_email_return_address' );
|
|||
|
|
|||
|
return $result;
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* Base logging function
|
|||
|
* @param array $values The values which have to be saved
|
|||
|
*/
|
|||
|
function qu_create_log_entry( $values ) {
|
|||
|
|
|||
|
if ( ! is_array( $values ) ) {
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
$line = date( 'Y-m-d;H:i:s;' );
|
|||
|
|
|||
|
foreach ( $values AS $value ):
|
|||
|
$line .= $value . ';';
|
|||
|
endforeach;
|
|||
|
|
|||
|
$line = str_replace( array( "\r\n", "\n\r", "\n", "\r" ), ' ', $line );
|
|||
|
|
|||
|
$line .= chr( 13 );
|
|||
|
|
|||
|
$logdir = WP_CONTENT_DIR . '/logs/';
|
|||
|
|
|||
|
if ( ! file_exists( $logdir ) ) {
|
|||
|
mkdir( $logdir );
|
|||
|
}
|
|||
|
|
|||
|
$logfile = $logdir . 'questions.log';
|
|||
|
|
|||
|
$file = fopen( $logfile, 'a' );
|
|||
|
fwrite( $file, $line );
|
|||
|
fclose( $file );
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* Preparing input data
|
|||
|
* @param string $data
|
|||
|
* @return string $data
|
|||
|
*/
|
|||
|
function qu_prepare_post_data( $data ){
|
|||
|
// Do not preparing objects or arrays
|
|||
|
if( is_object( $data ) || is_array( $data ) )
|
|||
|
return $data;
|
|||
|
|
|||
|
$data = trim( $data );
|
|||
|
$data = stripslashes( $data );
|
|||
|
return $data;
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* Creates a random id
|
|||
|
* @return string $id ID string
|
|||
|
*/
|
|||
|
function qu_id(){
|
|||
|
$id = md5( rand() );
|
|||
|
return $id;
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* Debugging helper function
|
|||
|
*/
|
|||
|
if( !function_exists( 'p' ) ){
|
|||
|
function p( $var ){
|
|||
|
echo '<pre>';
|
|||
|
print_r( $var );
|
|||
|
echo '</pre>';
|
|||
|
}
|
|||
|
}
|