Fixed Setting::getValue issue where defaults were not returned for single keys
- updated static strings with constants
This commit is contained in:
@ -91,7 +91,7 @@ class Mailer {
|
|||||||
|
|
||||||
function getMailer($mailer = false) {
|
function getMailer($mailer = false) {
|
||||||
if(!$mailer) {
|
if(!$mailer) {
|
||||||
$mailer = Setting::getValue('mta', null);
|
$mailer = Setting::getValue('mta');
|
||||||
if(!$mailer || !isset($mailer['method'])) throw new \Exception(__('Mailer is not configured.'));
|
if(!$mailer || !isset($mailer['method'])) throw new \Exception(__('Mailer is not configured.'));
|
||||||
}
|
}
|
||||||
$mailer['class'] = 'MailPoet\\Mailer\\Methods\\' . $mailer['method'];
|
$mailer['class'] = 'MailPoet\\Mailer\\Methods\\' . $mailer['method'];
|
||||||
|
@ -56,7 +56,11 @@ class Setting extends Model {
|
|||||||
if(count($keys) === 1) {
|
if(count($keys) === 1) {
|
||||||
$setting = Setting::where('name', $key)->findOne();
|
$setting = Setting::where('name', $key)->findOne();
|
||||||
if($setting === false) {
|
if($setting === false) {
|
||||||
return $default;
|
if($default === null && array_key_exists($key, $defaults)) {
|
||||||
|
return $defaults[$key];
|
||||||
|
} else {
|
||||||
|
return $default;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
if(is_serialized($setting->value)) {
|
if(is_serialized($setting->value)) {
|
||||||
$value = unserialize($setting->value);
|
$value = unserialize($setting->value);
|
||||||
|
@ -68,7 +68,7 @@ class Scheduler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static function schedulePostNotification($post_id) {
|
static function schedulePostNotification($post_id) {
|
||||||
$newsletters = self::getNewsletters('notification');
|
$newsletters = self::getNewsletters(Newsletter::TYPE_NOTIFICATION);
|
||||||
if(!count($newsletters)) return;
|
if(!count($newsletters)) return;
|
||||||
foreach($newsletters as $newsletter) {
|
foreach($newsletters as $newsletter) {
|
||||||
$post = NewsletterPost::where('newsletter_id', $newsletter->id)
|
$post = NewsletterPost::where('newsletter_id', $newsletter->id)
|
||||||
@ -92,8 +92,9 @@ class Scheduler {
|
|||||||
$subscriber_id,
|
$subscriber_id,
|
||||||
array $segments
|
array $segments
|
||||||
) {
|
) {
|
||||||
$newsletters = self::getNewsletters('welcome');
|
$newsletters = self::getNewsletters(Newsletter::TYPE_WELCOME);
|
||||||
if(!count($newsletters)) return;
|
if(empty($newsletters)) return;
|
||||||
|
|
||||||
foreach($newsletters as $newsletter) {
|
foreach($newsletters as $newsletter) {
|
||||||
if($newsletter->event === 'segment' &&
|
if($newsletter->event === 'segment' &&
|
||||||
in_array($newsletter->segment, $segments)
|
in_array($newsletter->segment, $segments)
|
||||||
@ -108,14 +109,16 @@ class Scheduler {
|
|||||||
array $wp_user,
|
array $wp_user,
|
||||||
$old_user_data
|
$old_user_data
|
||||||
) {
|
) {
|
||||||
$newsletters = self::getNewsletters('welcome');
|
$newsletters = self::getNewsletters(Newsletter::TYPE_WELCOME);
|
||||||
if(!count($newsletters)) return;
|
if(empty($newsletters)) return;
|
||||||
|
|
||||||
foreach($newsletters as $newsletter) {
|
foreach($newsletters as $newsletter) {
|
||||||
if($newsletter->event === 'user') {
|
if($newsletter->event === 'user') {
|
||||||
if($old_user_data) {
|
if($old_user_data) {
|
||||||
// do not schedule welcome newsletter if roles have not changed
|
// do not schedule welcome newsletter if roles have not changed
|
||||||
$old_role = (array) $old_user_data->roles;
|
$old_role = (array)$old_user_data->roles;
|
||||||
$new_role = (array) $wp_user->roles;
|
$new_role = (array)$wp_user->roles;
|
||||||
|
|
||||||
if($newsletter->role === self::WORDPRESS_ALL_ROLES ||
|
if($newsletter->role === self::WORDPRESS_ALL_ROLES ||
|
||||||
!array_diff($old_role, $new_role)
|
!array_diff($old_role, $new_role)
|
||||||
) {
|
) {
|
||||||
|
@ -47,7 +47,7 @@ class SettingTest extends MailPoetTest {
|
|||||||
->equals($default_settings['signup_confirmation']);
|
->equals($default_settings['signup_confirmation']);
|
||||||
}
|
}
|
||||||
|
|
||||||
function testItReturnsDefaultValueIfNotSet() {
|
function testItCanSetAndGetValues() {
|
||||||
// try to get an "unknown" key
|
// try to get an "unknown" key
|
||||||
$setting = Setting::getValue('unknown_key', 'default_value');
|
$setting = Setting::getValue('unknown_key', 'default_value');
|
||||||
expect($setting)->equals('default_value');
|
expect($setting)->equals('default_value');
|
||||||
@ -69,6 +69,26 @@ class SettingTest extends MailPoetTest {
|
|||||||
expect($setting)->equals('default_value');
|
expect($setting)->equals('default_value');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function testItShouldReturnDefaultsSetInModelIfNotSet() {
|
||||||
|
// model specified default settings
|
||||||
|
$default_settings = Setting::getDefaults();
|
||||||
|
|
||||||
|
// try to get the MTA settings (which don't exist in the database)
|
||||||
|
$mta_settings = Setting::getValue('mta');
|
||||||
|
expect($mta_settings)->equals($default_settings['mta']);
|
||||||
|
}
|
||||||
|
|
||||||
|
function testItShouldReturnCustomDefaultsInsteadOfDefaultsSetInModel() {
|
||||||
|
// try to get the MTA settings (which don't exist in the database)
|
||||||
|
// but specify a custom default value
|
||||||
|
$custom_mta_settings = Setting::getValue('mta', array(
|
||||||
|
'custom_default' => 'value'
|
||||||
|
));
|
||||||
|
expect($custom_mta_settings)->equals(array(
|
||||||
|
'custom_default' => 'value'
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
function testItCanCreateOrUpdate() {
|
function testItCanCreateOrUpdate() {
|
||||||
$data = array(
|
$data = array(
|
||||||
'name' => 'new',
|
'name' => 'new',
|
||||||
|
Reference in New Issue
Block a user