Compare commits

...

1075 Commits

Author SHA1 Message Date
2add301b9f Bumps up version to 3.0.0-beta.36.1.0 and updates changelog 2017-06-27 16:23:22 -04:00
2d217e416a Merge pull request #960 from mailpoet/fix-build-find
Make build script work on Mac os [MAILPOET-969]
2017-06-27 12:21:25 +03:00
77e0ace951 Merge pull request #961 from mailpoet/post_notification_unit_test_update
Updates the way we test for next run date in newsletter scheduler [MAILPOET-967]
2017-06-27 11:42:30 +03:00
933749f8f0 Merge pull request #941 from mailpoet/mp2tomp3migration
Mp2tomp3migration phase 2
2017-06-26 18:47:58 +03:00
7b13babf3f Merge pull request #958 from mailpoet/improve-ajax-errors
Improve ajax errors [MAILPOET-929]
2017-06-26 17:31:15 +03:00
8c673f78d7 Make build script work on Mac os
[MAILPOET-969]
2017-06-26 15:00:48 +01:00
2285c08c01 Revert "Revert "Improve ajax errors [MAILPOET-929]""
This reverts commit 81c3e2facf.
2017-06-26 13:51:53 +01:00
836b7179e9 Improve ajax errors on form submission
[MAILPOET-929]
2017-06-26 13:43:32 +01:00
f89a728c38 Uses predetermined timestamps from which next run date is calculated 2017-06-24 15:59:28 -04:00
58f2c32362 Allows passing custom time value to calculate the next run date from 2017-06-24 15:59:17 -04:00
99c4fc71c4 Release 3.0.0-beta.36.0.1 2017-06-23 15:48:04 +03:00
ce456af962 Merge pull request #957 from mailpoet/forms_assets_fix
Updates subscription forms to use assets manifest [MAILPOET-964]
2017-06-23 14:59:51 +03:00
faa035a7c3 Updates subscription forms to use assets manifest
Adds unit tests
2017-06-22 20:42:04 -04:00
9066be6544 Merge pull request #956 from mailpoet/revert-955-improve-ajax-errors
Revert "Improve ajax errors [MAILPOET-929]"
2017-06-22 20:35:42 -04:00
81c3e2facf Revert "Improve ajax errors [MAILPOET-929]" 2017-06-22 20:04:10 -04:00
3fafe2bd6a Merge pull request #955 from mailpoet/improve-ajax-errors
Improve ajax errors [MAILPOET-929]
2017-06-22 21:37:47 +03:00
2f6fe8c804 Translate error message
[MAILPOET-929]
2017-06-22 16:47:36 +01:00
ec3e88e658 Improve error handling for failed AJAX requests
[MAILPOET-929]
2017-06-22 13:35:55 +01:00
b346a8846a Merge pull request #949 from mailpoet/shortcodes-subject-archive
Print rendered subject in archive [MAILPOET-826]
2017-06-22 07:41:11 -04:00
6ff3895940 Add missing this for stubs expecting a number of method calls to work 2017-06-22 11:55:15 +01:00
0e5401dd68 Fix keys being invalidated after saving settings [MAILPOET-963] 2017-06-22 11:55:15 +01:00
ea059ac0e4 Merge pull request #954 from mailpoet/android-gmail-fix
Hide preheader in gmail on android [MAILPOET-802]
2017-06-22 12:50:42 +03:00
f874ae6ca8 Fix line endings
[MAILPOET-929]
2017-06-22 10:25:07 +01:00
5bd6c6533a Fixed: Skip button is vanishinig by itself in seconds 2017-06-21 19:24:07 +02:00
f539860922 Remove trailing spaces 2017-06-21 19:24:06 +02:00
536267c8f5 Fixed: Form fields were not inactive when used 2017-06-21 19:24:05 +02:00
5b905a60e8 Fixed: Unit test testReplaceMP2Shortcodes 2017-06-21 19:24:05 +02:00
5e152ebaa1 Fixed: Wrong date format on front-end 2017-06-21 19:24:04 +02:00
2c35c7061e Fixed: Display "Invalid e-mail" on the front-end whereas the e-mail is correct 2017-06-21 19:24:03 +02:00
2515dcf4ce Fixed: Wrong HTML encoding of the text fields 2017-06-21 19:24:02 +02:00
9458bf7418 Add Unit tests for MP2 to MP3 migration phase 2 2017-06-21 19:24:01 +02:00
44bf4b98b8 MP2 to MP3 migration phase 2: Forms migration 2017-06-21 19:24:01 +02:00
ff46784adf Merge pull request #952 from mailpoet/assets_manifest
Uses cross-env to set environment variables [MAILPOET-919]
2017-06-21 19:31:20 +03:00
088d4f800d Hide preheader in gmail on android
[MAILPOET-802]
2017-06-21 17:23:57 +01:00
bb73e257db Uses cross-env to set environment variables
Adds manifests to .gitingore
2017-06-21 10:28:40 -04:00
53fd3fe07c Update lstings to display rendered subject line
[MAILPOET-826]
2017-06-21 13:43:16 +01:00
27a734d005 Not include sensitive data in rendered subject
[MAILPOET-826]
2017-06-21 10:25:40 +01:00
fb059f585e Print rendered subject in archive
[MAILPOET-826]
2017-06-21 10:25:40 +01:00
c99f990dbf Fixes undefined index notice when analytics option is not present in the
DB
2017-06-21 08:31:37 +01:00
5600d8087f Release 3.0.0-beta.36.0.0 2017-06-20 17:54:47 +01:00
cac3c30833 Merge pull request #938 from mailpoet/cache_busting_update
Prevent using outdated JS assets in new releases [MAILPOET-919]
2017-06-20 19:35:33 +03:00
454a00c3cb Merge pull request #950 from mailpoet/no-ms-iis
Prevent mailpoet from activating on IIS [MAILPOET-920]
2017-06-20 12:19:12 -04:00
156d05b4cf Corrects identation and rebases master 2017-06-20 11:36:08 -04:00
be63aa727d Adds return statement to CSS compilication task
Swaps is_file with is_readable when checking for manifest's existance
2017-06-20 11:33:56 -04:00
6c270ab095 Reads and stores assets manifest inside Renderer class
Updates unit tests
2017-06-20 11:33:56 -04:00
bb7c9d2667 Adds assets manifest to the list of ignored files 2017-06-20 11:33:56 -04:00
570b9dfb8f Updates coding style 2017-06-20 11:33:07 -04:00
5f9baed195 Modifies Assets class to use manifest file
Adds unit tests
2017-06-20 11:33:07 -04:00
45e6e0e9e6 Adds manifest file to style assets 2017-06-20 11:33:07 -04:00
08395d4365 Adds support for environment flag to asset compilation
Uses production environment when building release
2017-06-20 11:33:07 -04:00
167fb86927 Adds manifest to JS assets
Adds conditional assets caching based on environment
2017-06-20 11:33:06 -04:00
64dbf158a4 Merge pull request #948 from mailpoet/subscription_fix
Corrects reference to outdated API Response class [MAILPOET-959]
2017-06-20 17:43:56 +03:00
89e57479cc Make sure variable is set
[MAILPOET-920]
2017-06-20 15:41:27 +01:00
fccd7f4054 Prevent mailpoet from activating on IIS
[MAILPOET-920]
2017-06-20 11:43:56 +01:00
1d6cdfe2cc Merge pull request #945 from mailpoet/newsletter_preview_email_update
Adds bogus list-unsubscribe link & disables view in browser link in preview emails [MAILPOET-948] [MAILPOET-875]
2017-06-20 12:22:25 +03:00
812c6634ba Mixpanel analytics [MAILPOET-686] (#940)
* Send analytics data to mixpanel

[MAILPOET-686]
2017-06-20 12:20:50 +03:00
419871a6bf Corrects reference to outdated API Response class
Removes unused class reference
2017-06-19 18:56:54 -04:00
823cd3cd07 Make MailPoet pages independent of the WP About page styles
[MAILPOET-951]
2017-06-19 17:38:33 +01:00
24fa8c1d79 Merge pull request #947 from mailpoet/add-eslint
Add eslint [MAILPOET-938]
2017-06-19 19:19:01 +03:00
868f860e26 Use airbnb linter package
Instead of the deprecated package `airbnb-base`
And also fix the new errors
[MAILPOET-938]
2017-06-19 17:00:33 +01:00
cbcd9fb22f Adds support for list-unsubscribe header to the MSS method
[MAILPOET-956]
2017-06-19 16:19:31 +01:00
eeb2fcb2e3 Treat warnings as errors
[MAILPOET-938]
2017-06-19 16:17:09 +01:00
dde0b16cca Update robo file
[MAILPOET-938]
2017-06-19 16:09:59 +01:00
01eaf1ef2d Merge pull request #937 from mailpoet/premium_updates_fix
Add updater to the Free [PREMIUM-22]
2017-06-19 11:09:42 -04:00
43c2908a2b Adds unit test for "preview" mode, which replaces system links with
hashes in preview emails
2017-06-19 11:04:51 -04:00
6f64b9faa2 Add eslint
[MAILPOET-938]
2017-06-19 14:30:09 +01:00
8d496e7aa3 Adds unit test for fake unsubscribe url 2017-06-19 09:08:19 -04:00
25485a366a Merge pull request #942 from mailpoet/scheduler_fix
Fixes sending of scheduled newsletters [MAILPOET-955]
2017-06-19 13:12:38 +03:00
8aabc783e3 Merge pull request #943 from mailpoet/remove-napa
Remove napa [MAILPOET-958]
2017-06-19 12:15:22 +03:00
f72ceb2dbe Disables "view in browser", "manage subscription" and "unsubscribe"
links in preview emails
2017-06-16 18:14:30 -04:00
af3d971154 Uses "fake" unsubscribe URL to set the "list-unsubscribe" header 2017-06-16 18:10:39 -04:00
2d3aae9dd0 Fixes queue not being processed for scheduled newsletters
Sets newsletter status to "sending" when queue was processed
Uses defined constants where appropriate
2017-06-15 19:11:35 -04:00
11af014d9d Remove napa
It caused errors while running npm commands
I found alternatives to those two packages
which were used with napa
2017-06-15 18:11:05 +01:00
6653327f7f Merge pull request #939 from mailpoet/key_check_refactoring
Separate checking and storing of the keys [MAILPOET-939]
2017-06-15 15:47:38 +03:00
3a2adde6c5 Merge pull request #934 from mailpoet/network-activation-notice
Show a notice to admin if network activation
2017-06-15 14:31:57 +03:00
1aba3112e9 Separate checking and storing of the keys [MAILPOET-939] 2017-06-15 13:00:56 +03:00
181d7b9876 Add indexes to stat tables to speed up counting unopened subscribers [PREMIUM-21] 2017-06-14 14:59:20 +01:00
ebe3f0bd00 Rename variables by coding standards
[MAILPOET-923]
2017-06-14 14:35:33 +01:00
1b69fe50ff Rename function flushAll
[MAILPOET-923]
2017-06-14 14:33:21 +01:00
fa3ba609f3 Show a notice to admin if network activation
Mailpoet seems to be working on network activated multisites but we
don't support it.
[MAILPOET-923]
2017-06-14 14:30:20 +01:00
fe9aa03de1 Add updater to the Free [PREMIUM-22] 2017-06-14 14:24:18 +03:00
cdd8e51ef9 Merge pull request #936 from mailpoet/premium_blockage_fix
Allow to access Settings after exceeding the 2000 limit [MAILPOET-950]
2017-06-14 12:33:51 +03:00
1da06bd46a Allow to access Settings after exceeding the 2000 limit [MAILPOET-950] 2017-06-14 10:47:34 +03:00
32b24a83ab Suggest to activate MSS after a successful key check [MAILPOET-937] 2017-06-13 16:01:47 +01:00
5293589eea Release 3.0.0-beta.35.0.0 2017-06-13 17:05:50 +03:00
07f4c0bc1e Merge pull request #923 from mailpoet/fast_svn_publish
Use a faster SVN workflow in release publishing automation [MAILPOET-913]
2017-06-13 07:50:47 -04:00
7d9a072545 Merge pull request #928 from mailpoet/wp_mail_switch
Replaces SwiftMailer's mail() method with WP's PHPMailer [MAILPOET-926]
2017-06-13 14:10:07 +03:00
67ffcb5485 Clean up the SVN dir before checking out for faster operation [MAILPOET-913] 2017-06-13 12:22:32 +03:00
02098a3cf0 Merge pull request #888 from mailpoet/mp2tomp3migration
MP2 to MP3 migration [MAILPOET-946]
2017-06-12 19:41:46 +03:00
eab8065154 Remove the promise of migrating newsletters and statistics.
We will not be offering these options!
2017-06-12 17:36:04 +03:00
fb8ecef1c3 Merge pull request #932 from mailpoet/revert-931-minimum_php_version_fix
Revert "Updates minimum required "release version" from 3 to 30 [MAILPOET-944]"
2017-06-12 10:27:09 -04:00
14955e5022 Revert "Updates minimum required "release version" from 3 to 30"
This reverts commit e83c0ff0bd.
2017-06-12 10:20:01 -04:00
e83c0ff0bd Updates minimum required "release version" from 3 to 30 2017-06-12 14:52:44 +01:00
09db1aac22 Merge pull request #929 from mailpoet/mp_api_fix
Fixes confirmation emails not sent when adding subscriber in MP API [MAILPOET-942]
2017-06-12 14:22:05 +03:00
5fa1eb643a Remove tests that may fail because of the original database content 2017-06-12 13:13:17 +02:00
898913a517 Change: the users belonging to the wp_users segment must be imported as subscribed to the wp_users segment 2017-06-12 13:13:17 +02:00
3a4b364bcd Modify unit tests following previous changes 2017-06-12 13:13:16 +02:00
d373d10f6c Fixed: Segments with a null description were not imported 2017-06-12 13:13:15 +02:00
c07e1eff3c New: Redirect the user to the migration page if the import has started but is not finished to prevent him from using MailPoet with incomplete data. So he can resume the import where it left off. 2017-06-12 13:13:15 +02:00
f5e985baa4 Change: Move the progress bar JSON file to the wp-content/uploads/mailpoet directory and remove "mailpoet" from its filename 2017-06-12 13:13:14 +02:00
2c93a105cc Fixed: Migration script suggests displays "Upgrade completed!" text and allows the user to click the "Go to MailPoet" button while the migration is still being performed. 2017-06-12 13:13:14 +02:00
cbf0a7684f Fixed: If there are WP users that haven't been added as MP2 WP subscribers, they won't be present as MP3 subscribers after migration either. 2017-06-12 13:13:13 +02:00
2632feba31 Fixed: On Migration page, clicking on "Start upgrade No thanks, I'll skip and start from scratch." redirects to the same migration page. 2017-06-12 13:13:12 +02:00
c96bc755c7 Fixed: the progress bar goes over 100% and displays "NaN%" if the MP2 tables are empty. 2017-06-12 13:13:12 +02:00
bbad772d7a PHP Notice: Use of undefined constant IMPORT_TIMEOUT_IN_SECONDS 2017-06-12 13:13:11 +02:00
520a3c43be Changes for API 2017-06-12 13:13:10 +02:00
eb70df1466 The "Start upgrade" button can now resume the import. 2017-06-12 13:13:09 +02:00
5977b8b4bc Translations 2017-06-12 13:13:09 +02:00
2bb7d95e37 Remove the "Start upgrade" button when the upgrade is completed
Add the "Upgrade completed" message
Add the "Go to MailPoet" button
2017-06-12 13:13:08 +02:00
c64959dce0 Fixed: Segments number can be wrong 2017-06-12 13:13:08 +02:00
ead0792b32 Rename getDataToMigrate() to getDataToMigrateAndResetProgressBar() 2017-06-12 13:13:07 +02:00
7bd52d456c Make the Migration page accessible through admin.php?page=mailpoet-migration 2017-06-12 13:13:06 +02:00
8517896660 Rename imported_data_mapping table to mapping_to_external_entities 2017-06-12 13:13:06 +02:00
c78933f7c4 Numerous fixes following the code review:
H1 title should be "Welcome to MailPoet version 3!", as per wireframes
remove logo in top right of the page
remove the classes feature-section one-col to the parent
new styles for #logger
progress bar: ensure that the color and size for the font are the same as our current progress bar.
display the progress bar at 100% when the import of subscribers and lists is complete
move loadSQL() function in tests/_support/Helper/Database.php
remove CSS browser prefixes
use AMD module definition to embed the JavaScript
remove extra whitespace in JavaScript file
remove the redundant functions descriptions
rename objectPlugin to mailpoet_mp2_migrator
replace private $chunks_size by the constant CHUNK_SIZE
add the constant IMPORT_TIMEOUT_IN_SECONDS
replace Helpers::mysqlDate() by $datetime->formatTime(time(), \MailPoet\WP\DateTime::DEFAULT_DATE_TIME_FORMAT)
make the log messages translatable
fix PHPDoc
replace Env::$plugin_name by 'mailpoet' in the translation functions
use $snake_case for variable names, use lowercaseCamelCase for method names, use CamelCase for class names
define MP2 table names as constants
add spaces around ternary operators
use the models for MP3 entities, instead of counting via raw SQL queries
use \ORM::for_table('some_table')::count()
2017-06-12 13:13:05 +02:00
707d5efec1 Modify H1 title
Remove logo
Modify progress label font size
Modify progress bar style
2017-06-12 13:13:04 +02:00
acfb3aefba Use snake_case 2017-06-12 13:13:04 +02:00
cb6f4046a2 Removes utf8 decoding that breaks import 2017-06-12 13:13:03 +02:00
667aa91581 Adds character encoding 2017-06-12 13:13:02 +02:00
b7f7dc6728 Add unit tests for the MP2Migrator class
Add the method "invokeMethod" in the MailPoetTest class to be able to test private and protected methods
Move the "rowsCount" method in the Helpers class for reusability
Add the method "loadSQL" in the Helpers class
Store the mapping between MP2 user ID and MP3 subscriber ID
2017-06-12 13:13:02 +02:00
ad1e8feb23 QA fixes 2017-06-12 13:13:01 +02:00
486b382c88 Use API versioning 2017-06-12 13:13:00 +02:00
472be3b071 Import the MP2 users lists
Import the MP2 users
Add the table "imported_data_mapping"
Add the function Helpers::mysql_date
2017-06-12 13:13:00 +02:00
37a9fd9e1b Use Setting::getValue() and Setting::setValue() instead of get_option() and update_option() 2017-06-12 13:12:59 +02:00
c984ac7a66 New: Display the number of data to migrate
Several fixes following the code review:
- For styles we use Stylus. (http://stylus-lang.com/)
  In Stylus styles curly brackets and terminating semicolons are unnecessary. Indentation is sufficient to denote blocks of styles
  You can also use variables to avoid duplication (e.g. mentioning the same color multiple times)
  Vendor prefixes are not necessary. We use the Nib mixin for Stylus to handle those (http://tj.github.io/nib/)
  => DONE

- `admin.js` bundle is included on all admin pages, so we need to ensure that migration fires only on the migration page and nowhere else.
  You can even create a separate bundle only for migration files, as they won't be necessary on other admin pages.
  => DONE

- MP2MigratorAPI => MP2Migrator endpoint would be just as fine
  => DONE

- For storing migration files, you can use the `Env::$temp_path` path
  => DONE

- `proposeMigration()` the method name disagrees with the comment.
  Comment suggests it tests if migration can be or should be performed
  Method name suggests that it proposes doing the migration (to the user?) - not very clear
  => DONE: the new name is isMigrationNeeded()

  And not only does it test, it may also update the `mailpoet_migration_complete` option, which is confusing and is an unexpected side-effect.
  => DONE

  The migration class itself `MP2Migrator` shouldn't even care about _GET, _REQUEST or _POST arguments. It should only work with what is passed to it.
  => DONE

- In views, please make sure all human-friendly texts use WP's gettext functions for translations (e.g. __('text'))
=> DONE
2017-06-12 13:12:58 +02:00
a1ea56f505 Coding standard fixes 2017-06-12 13:12:58 +02:00
dd7f959731 Migration from Mailpoet 2 to Mailpoet 3 : phase 0
Interface
2017-06-12 13:12:57 +02:00
09f4f2e78a Fix a unit test [MAILPOET-942] 2017-06-12 11:38:01 +03:00
502250a1a3 Merge pull request #930 from mailpoet/import_update
Adjusts WP's email validation regex to JS's syntax [MAILPOET-943]
2017-06-12 11:10:38 +03:00
48e37f6797 Adjusts WP's email validation regex syntax to JS 2017-06-11 12:31:54 -04:00
420058a86d Optimizes tests
Adds new tests
2017-06-11 12:18:14 -04:00
6c777ca074 Reloads subscriber or else status and other fields populated at save
time are not returned
Schedules welcome notifications only for subscribers with "subscribed"
status
Extracts confirmation email sending/welcome notification scheduling into
separate functions for easy testing
2017-06-11 12:16:34 -04:00
a481debb77 Adds "html" body to the mailing method test message 2017-06-09 09:53:07 -04:00
c91f8ccc7a Replaces SwiftMailer's mail() method with WP's PHPMailer 2017-06-09 09:52:22 -04:00
6a2b5e28c2 Merge pull request #927 from mailpoet/fix-alc-buttons-settings
Fix ALC buttons settings when updating all buttons [MAILPOET-896]
2017-06-09 09:35:36 +03:00
bc51b6efc8 Add replaceAllButtonStyles test to button
[MAILPOET-896]
2017-06-09 07:24:26 +01:00
152edda03f Add unit test
[MAILPOET-896]
2017-06-08 16:58:30 +01:00
5029b73027 Merge pull request #924 from mailpoet/model_validator_fix
Fixes reference to $this in anonymous function on PHP 5.3 [MAILPOET-934]
2017-06-08 17:13:04 +03:00
35c25d3337 Updates length to support IPv4 mapped IPv6 addresses 2017-06-08 13:45:50 +01:00
ae25e95d51 Updates length of columns with IP addresses to 39 2017-06-08 13:45:50 +01:00
5b8d0c63a1 Fix a changelog link [MAILPOET-935] 2017-06-08 10:47:30 +01:00
94fb8c6096 Merge pull request #918 from mailpoet/beacon_update_with_premium_version
UTF-8 encodes beacon data
2017-06-08 12:38:18 +03:00
93ef1d0197 Fix ALC buttons settings when updating all buttons
[MAILPOET-896]
2017-06-08 10:19:24 +01:00
501d00b0cc Merge pull request #919 from mailpoet/fix-composer-cp-mac
Remove -d option from composer.json script
2017-06-08 12:15:18 +03:00
9af3dc1f9d Fixes reference to $this in anonymous function on PHP 5.3 2017-06-07 11:52:46 -04:00
3705ed7da0 Use a faster SVN workflow in release publishing automation [MAILPOET-913] 2017-06-07 17:46:10 +03:00
5b99e66d8d Merge pull request #922 from mailpoet/fix-tests-problems
Fix tests problems
2017-06-07 10:34:20 -04:00
cbedd5ff40 Bump up release version to 3.0.0-beta.34.0.0 2017-06-07 16:14:47 +03:00
bfcd6f10fc Merge pull request #921 from mailpoet/premium_launch
Add Premium features for the launch, Free-side
2017-06-07 14:54:21 +03:00
79362e9955 Update 'buy Premium only' link URL on the Premium page 2017-06-07 14:42:55 +03:00
fcf272b44a Fix lint error 2017-06-07 11:49:07 +01:00
b80683a9a1 Fix unit tests for PHPUnit v6
Codeception from version 2.3 up comes with PHPUnit v6 which changed
__construct behaviour. Our tests have to call parent __constructor in
order to work. The error was:
[PHPUnit\Framework\Exception] array_merge(): Argument #1 is not an array
2017-06-07 11:32:33 +01:00
5349f3a59a Use ssl while checking url
My internet provider tried to be helpfull and offeres content on
invalid urls. That is only behaviour for http:// scheme and not
for https:// scheme so I need to enforce ssl so that invalid url
fails even in my house.
2017-06-07 11:30:31 +01:00
95072a9ac5 Restore empty license key warnings [MAILPOET-933] 2017-06-07 12:39:45 +03:00
8c372b0909 Update support video, add a border to videos [MAILPOET-885] 2017-06-07 12:39:45 +03:00
580dd38b3a Rename methods for consistency and better readability [PREMIUM-9] 2017-06-07 12:39:44 +03:00
47d4e98aae Integrate installer with the Release API [PREMIUM-9] 2017-06-07 12:39:43 +03:00
7ebb7bac17 Add Premium installation/activation UI [PREMIUM-9] 2017-06-07 12:39:43 +03:00
6cbce2fc97 Replace Premium gif assets with mp4 videos [MAILPOET-885] 2017-06-07 12:39:41 +03:00
e8a950f32c Add Premium page images to plugin repository assets [MAILPOET-885] 2017-06-07 12:39:12 +03:00
4f722ecd8a Add hooks for actions row for standard and notification history newsletter types [PREMIUM-13] 2017-06-07 12:30:50 +03:00
478359f9ff Add minor improvements to stats [PREMIUM-13] 2017-06-07 12:30:48 +03:00
a1720a5cf1 Use videos instead of gifs on the Premium page [MAILPOET-885] 2017-06-07 12:30:47 +03:00
3f0ef3ded7 Replace Premium gif assets with mp4 videos [MAILPOET-885] 2017-06-07 12:30:47 +03:00
dcb25c1a6b Swap welcome emails and support images [MAILPOET-885] 2017-06-07 12:30:45 +03:00
c5dd575324 Add Premium page images to plugin repository assets [MAILPOET-885] 2017-06-07 12:30:45 +03:00
6eca26a4e2 Add UTM params to Premium page links [MAILPOET-885] 2017-06-07 12:30:43 +03:00
e10fa065bd Add Premium page [MAILPOET-885] 2017-06-07 12:30:42 +03:00
49673fabbd Does not display logo when MSS is active or preview is enabled
Adds additional unit tests and optimizes existing
2017-06-07 12:30:42 +03:00
1c1a210542 Adds MailPoet logo to newsletters in the free version 2017-06-07 12:30:41 +03:00
30277d92cd Updates action button 2017-06-07 12:30:41 +03:00
fb940065ea Fix a source value for Premium key in the worker [MAILPOET-890] 2017-06-07 12:30:40 +03:00
afa06342a5 Update link for the Premium page 2017-06-07 12:30:40 +03:00
03d2ff5f26 Make use of returned promises for parallel requests loading modal [MAILPOET-890] 2017-06-07 12:30:40 +03:00
ec71dff40d Change strings on the 2000 limit page for Premium [MAILPOET-888] 2017-06-07 12:30:39 +03:00
58faf64a5c Add a Premium page link to bounced subscribers listing [MAILPOET-887] 2017-06-07 12:30:39 +03:00
65ff14a81d Adds hook to modify newsletter actions 2017-06-07 12:30:38 +03:00
f7efe44f09 Fix ServicesChecker behavior, make MSS check stricter [MAILPOET-890] 2017-06-07 12:30:38 +03:00
cf22e81ae1 Updates exposed components 2017-06-07 12:30:37 +03:00
7aa0f21d11 Rework 'Send with...' tab UI, make a single license key field [MAILPOET-890] 2017-06-07 12:30:37 +03:00
2e31e3d37c Exposes components required for welcome notifications 2017-06-07 12:30:36 +03:00
3e988b7a56 Removes welcome notification creation component and routes
Updates welcome notification template
2017-06-07 12:30:36 +03:00
ce3eb06924 Prevents welcome emails from being created
Adds filter to modify available email types
2017-06-07 12:30:35 +03:00
a37ff8d398 Limits utf8 encoding to php_uname function only (Windows may use an
encoding other than ISO-8859-1 in non-English locales)
2017-06-06 18:16:04 -04:00
d0bdb1a47b Adds XML polyfill for utf8_encode/decode functions 2017-06-06 15:06:39 -04:00
855f2a55d4 Remove -d option from composer.json script
This flag is not present on mac and it makes this script
fail on MacOS.
2017-06-06 15:49:51 +01:00
fc7ec9bded UTF-8 encodes beacon data 2017-06-06 10:10:07 -04:00
028de860a2 Merge pull request #913 from mailpoet/sending_queue_update_on_newsletter_status_change
Prevents processing of sending queues when newsletter is paused [MAILPOET-900]
2017-06-06 15:00:21 +03:00
5af91d028d Merge pull request #916 from mailpoet/unsubscribe_fix
Fixes incorrect dependency that breaks unsubscribe link [MAILPOET-931]
2017-06-06 13:12:16 +03:00
a4bcf870bb Merge pull request #915 from mailpoet/beacon_update_with_premium_version
Adds premium version information to HS beacon [MAILPOET-930]
2017-06-06 09:49:09 +03:00
e06f2f5f0b References the correct class and removes unused dependency 2017-06-05 15:20:14 -04:00
c101645d93 Adds premium version information to HS beacon 2017-06-05 14:59:30 -04:00
b8904c2d51 Merge pull request #914 from mailpoet/subscriber_email_validation_logic_update
Uses WP's function to validate subscriber email address [MAILPOET-925]
2017-06-05 19:25:53 +03:00
099db4e1c8 Removes unused variable
Fixes typo in error message
2017-06-05 11:59:13 -04:00
cdf36ccb20 Trashes/restores/deletes (+ same bulk actions) children newsletters and
associations as per discussion on Slack:
https://mailpoet.slack.com/archives/C02MTKAJL/p1496427873491785
2017-06-05 11:36:04 -04:00
79b6ab1d15 Finishes incomplete test 2017-06-05 10:30:45 -04:00
95114774da Merge pull request #912 from mailpoet/sending_queue_and_post_notification_history_listing_update
Sending queue and post notification history listing update [MAILPOET-928]
2017-06-05 14:53:22 +03:00
7f566fb672 Adds client-side check for invalid characters in email addresses
Adds server-side validation of email addresses using WP's is_email()
2017-06-04 18:48:11 -04:00
d27968a215 Uses WP's is_email() to validate email addresses in Subscriber model 2017-06-04 18:19:37 -04:00
344990d59e Only processes queues when newsletter exists and is active/sending 2017-06-02 12:03:34 -04:00
ea831ef160 Prevents processing scheduled sending queues for inactive newsletters 2017-06-01 19:50:25 -04:00
8314b05fce Displays "not yet sent" as a sent date when post notification has not
yet been sent/being sent
2017-06-01 14:58:25 -04:00
fd33cc7068 Uses parent newsletter's subject when queue's rendered subject is not
available
2017-06-01 14:26:50 -04:00
92e4cc6a24 Sorts sending queue according to their creation date (oldest to newest) 2017-06-01 13:21:03 -04:00
dd4bebb570 Bumps up release version to Beta 33.1 and updates changelog 2017-05-30 14:27:29 -04:00
99aed2cb01 Merge pull request #908 from mailpoet/utf8_fix
Apply charset and collation only if they are specified [MAILPOET-924]
2017-05-30 14:25:33 -04:00
92616063ec Fix unit test for generating DB source name 2017-05-30 21:18:45 +03:00
c56b56f4aa Apply charset and collation only if they are specified 2017-05-30 21:05:01 +03:00
33d6533c64 Bumps up release version to Beta 33 and updates changelog 2017-05-30 09:30:12 -04:00
55d7a0dd01 Merge pull request #907 from mailpoet/welcome_email_scheduler_update
Schedules welcome notifications after subscription is confirmed [MAILPOET-907]
2017-05-30 14:02:48 +03:00
8b2ac99eda Merge pull request #903 from mailpoet/beacon_update
Adds server OS, web server information and cron ping response to HS beacon [MAILPOET-918]
2017-05-30 12:15:46 +03:00
dba21c68fd Schedules welcome notification upon subscription when subscription
confirmation is disabled
Schedules welcome notification upon subscription confirmation
Checks when 'REMOTE_ADDR' is not set
Adds unit tests
2017-05-29 22:04:47 -04:00
5b40652737 Merge pull request #906 from mailpoet/form_widget_rendering
Wrap form widget title as configured by the sidebar [MAILPOET-910]
2017-05-29 19:44:11 -04:00
7f0396747d Adds cron ping URL instead of ping response
Checks for existence of SERVER_SOFTWARE variable
2017-05-29 19:29:56 -04:00
e9dfff8e66 Wrap form widget title as configured by the sidebar 2017-05-29 18:12:51 +03:00
040c4da6c3 Merge pull request #904 from mailpoet/php_version_requirement_update
Requires PHP 5.3.3 in line with composer.json requirements [MAILPOET-921]
2017-05-29 13:15:13 +03:00
80a237504d Requires PHP 5.3.3 in line with composer.json requirements 2017-05-26 11:34:31 -04:00
4e2e09ea24 Adds server OS, web server information and cron ping response to HS
beacon
2017-05-25 15:55:33 -04:00
87b9fbdc16 Merge pull request #900 from mailpoet/utf8
Synchronize MailPoet DB connection charset with WordPress [MAILPOET-748]
2017-05-24 16:09:58 +03:00
a071a14eec Update only those queries, for which conversion will yield correct char
lengths
2017-05-24 15:45:12 +03:00
5ae006b10f Update plugin version [MAILPOET-748] 2017-05-24 15:45:12 +03:00
9d21ebd26e Fix a comment. UTF8MB4 is a superset of UTF8 2017-05-24 15:45:12 +03:00
fcff6de3c3 Skip conversion for charset utf8 -> utf8mb4 2017-05-24 15:45:12 +03:00
3d2168856d Fix unit tests for Env charsets and collations 2017-05-24 15:45:12 +03:00
a6eb1b06da Add connection charset sync with WP and convert existing data to it 2017-05-24 15:45:12 +03:00
21d0c3518e Merge pull request #901 from mailpoet/transifix
Bundle translations completed by 75%, remove PO files in build [MAILPOET-916]
2017-05-23 18:40:46 +03:00
3532a3c8e9 Bundle translations completed by 75%, remove PO files in build [MAILPOET-916] 2017-05-23 18:34:00 +03:00
79cba4cace Release 3.0.0-beta.32 2017-05-23 13:27:19 +03:00
a5dee8da12 Merge pull request #897 from mailpoet/third_party_subscription_methods
Enables subscriber email to be passed when subscribing to list(s) [MAILPOET-809]
2017-05-22 14:25:00 +03:00
3783384ea6 Add a test to ensure subscribers can be identified by their email
address via MPAPI
2017-05-22 13:49:01 +03:00
766c0dfcfc Enables subscriber email to be passed when subscribing to list(s)
List subscription methods return array with subscriber data
2017-05-19 09:51:29 -04:00
83e9de8e95 Merge pull request #887 from mailpoet/third_party_subscription_methods
Adds API methods for third-party plugins [MAILPOET-809]
2017-05-17 14:03:19 +03:00
0a512f6349 Uses the first matching namespace endpoint 2017-05-16 23:17:25 -04:00
a4c1095db7 Moves custom field extraction logic from CustomField model to Subscriber
model where it's used
2017-05-16 20:58:44 -04:00
87a6c7100e Uses real object's ID 2017-05-16 20:58:43 -04:00
fc51d5f98c Sends confirmation email and schedules welcome notification by default
Fixes a typo in text string
2017-05-16 20:58:43 -04:00
a1b3aaf1f8 Adds method to create subscriber 2017-05-16 20:58:43 -04:00
3a1bf88c22 Extracts some logic into resuable methods 2017-05-16 20:58:43 -04:00
bd39c34f03 Adds unit tests 2017-05-16 20:56:56 -04:00
73121c2ca5 Adds method to return all segments minus WP Users segment(s) 2017-05-16 20:56:56 -04:00
5e23fa4295 Adds method to subscribe to single or multiple lists 2017-05-16 20:56:56 -04:00
5e34bbf9d5 Adds method to return subscriber fields 2017-05-16 20:56:56 -04:00
cedd94550f Adds unit test for API entry point 2017-05-16 20:56:55 -04:00
8b13889c7a Adds one entry point for both JSON and MP APIs
Removes endpoints folder and moves versions to the root
JSON API folder
2017-05-16 20:56:55 -04:00
3c7ac5488a Adds MP API facade 2017-05-16 20:56:54 -04:00
398d7d3d80 Moves current API under JSON namespace 2017-05-16 20:56:54 -04:00
b727ba423e Fix a typo in readme.txt 2017-05-16 18:08:58 +03:00
45b9550293 Thank people in changelog 2017-05-16 17:56:25 +03:00
d2e520e2fd Add new translations info to the readme.txt 2017-05-16 17:39:30 +03:00
b9c3ae97cd Bump up release version to 3.0.0-beta.31 2017-05-16 17:23:58 +03:00
b90c0b173b Merge pull request #892 from mailpoet/premium_key_warnings_fix
Temporarily hide invalid key warnings when the license key isn't specified [MAILPOET-911]
2017-05-16 12:56:26 +03:00
f498f4df0c Merge pull request #894 from mailpoet/progress_bar_style
Change sending progress bar style [MAILPOET-753]
2017-05-15 22:20:00 -04:00
2f10f89fc5 Change sending progress bar style [MAILPOET-753] 2017-05-15 21:25:40 +03:00
a49f9d9c80 Merge pull request #893 from mailpoet/newsletter_hash_generation_fix
Fixes newsletter link hash generation logic [MAILPOET-912]
2017-05-15 20:45:54 +03:00
e71e23bbb5 Temporarily hide invalid key warnings when the license key isn't specified [MAILPOET-911] 2017-05-15 20:16:29 +03:00
adc86ef247 Increases hash length and random string size 2017-05-15 13:07:18 -04:00
765b2bad21 Merge pull request #891 from mailpoet/form_list_select_fix
Fix non-text form fields not being sent to server [MAILPOET-909]
2017-05-15 09:15:44 -04:00
2354cac719 Updates unit test 2017-05-15 08:55:32 -04:00
7f509f66ff Changes newsletter link hash generation function 2017-05-15 08:36:43 -04:00
d8ff251c71 Fix WP user first/last name being cleared after subscription management form submit 2017-05-15 10:22:47 +03:00
12979cc2c0 Merge pull request #883 from mailpoet/alc_term_limit
Remove the result limit when searching for post terms in ALC and Posts [MAILPOET-902]
2017-05-14 22:47:16 -04:00
e974c06a89 Fixes subscription management form not saving data 2017-05-14 22:41:16 -04:00
f2ceff8252 Removes unused method 2017-05-14 22:02:24 -04:00
cd5f3165c7 Uses queue ID when fetching newsletter link by hash 2017-05-14 22:02:19 -04:00
6e700b0cfa Moves newsletter hash generating logic into Security helper class
Updates Links class to use Security helper's hash generating method
2017-05-14 20:15:40 -04:00
5b41fc212c Merge pull request #890 from mailpoet/helpscout
Force showing name and email fields in HelpScout Beacon [MAILPOET-908]
2017-05-13 12:52:13 +03:00
2b7a5452b8 Fix non-text form fields not being sent to server [MAILPOET-909] 2017-05-11 18:12:57 +03:00
cfed133fb6 Limit the number of terms returned to 50 and force ordering by name 2017-05-11 13:00:42 +03:00
0beff9a090 Bump up the limit when searching for post terms in ALC and Posts 2017-05-11 12:45:15 +03:00
d6e707fb85 Force showing name and email fields in HelpScout Beacon [MAILPOET-908] 2017-05-11 12:22:07 +03:00
a3e8d47199 Bump up release version to 3.0.0-beta.30 2017-05-09 16:57:29 -04:00
cab3f3a96e Merge pull request #884 from mailpoet/premium_key_check
Add Premium key validation [PREMIUM-4]
2017-05-09 16:30:43 +03:00
5f0d4abe7f Temporarily hide Premium tab in settings [PREMIUM-4] 2017-05-09 16:01:42 +03:00
ff5f87eeca Rename processQueueLogic() method to processQueueStrategy() [PREMIUM-4] 2017-05-09 15:42:37 +03:00
e85b969e11 Rename initApi() to init() in workers [PREMIUM-4] 2017-05-09 09:12:20 +03:00
2eb98905b6 Encapsulate date formatting within the DateTime class [PREMIUM-4] 2017-05-09 08:54:12 +03:00
ac1274c6fd Merge pull request #889 from mailpoet/tinymce_lists_fix
Bring back list buttons to the TinyMCE toolbar [MAILPOET-906]
2017-05-08 14:14:52 -04:00
94f91afce1 Bring back list buttons to TinyMCE toolbar [MAILPOET-906] 2017-05-08 21:01:18 +03:00
73d5fb8cff Merge pull request #886 from mailpoet/strings_fix
Fixes form editor notification not displaying added/updated/removed custom field [MAILPOET-905]
2017-05-08 13:24:59 +03:00
90b2b46db4 Make key check method names consistent [PREMIUM-4] 2017-05-08 13:16:05 +03:00
f2bf61240a Extract a state building method from key check results processing [PREMIUM-4] 2017-05-08 08:01:51 +03:00
3f151fd235 Extract simple workers common code into a base class [PREMIUM-4] 2017-05-08 07:38:56 +03:00
7598363cae Fixes notification message not displaying dynamic value due to JS
encoding
2017-05-05 18:38:49 -04:00
4b1f216cd3 Use WP's date format instead of a hard-coded one [PREMIUM-4] 2017-05-05 18:57:15 +03:00
3d5f13a2b8 Fix code style [PREMIUM-4] 2017-05-05 18:41:19 +03:00
98eab956e9 Rename checkAPIKey to checkMSSKey (MailPoet Sending Service) [PREMIUM-4] 2017-05-05 18:12:48 +03:00
a7260cba3d Make the Premium key check stricter, split a unit test into more granular ones [PREMIUM-4] 2017-05-05 18:09:00 +03:00
787e022382 Rename license key constants and vars, optimize error generation [PREMIUM-4] 2017-05-05 18:04:52 +03:00
d8e1c76155 Remove a leftover hook from Free after the key field removal from Premium [PREMIUM-4] 2017-05-05 17:18:56 +03:00
3cb08e3c09 Rename MSS check methods to better distinguish them from Premium ones [PREMIUM-4] 2017-05-04 09:36:38 +03:00
0474985866 Add unit tests [PREMIUM-4] 2017-05-04 09:25:34 +03:00
8d15ef6d06 Refine license key check UI [PREMIUM-4] 2017-05-04 09:15:21 +03:00
0fbc7fb7eb Add Premium key validation [PREMIUM-4] 2017-05-03 12:20:13 +03:00
1379bdbbeb Bump up release version to 3.0.0-beta.29 2017-05-02 18:10:20 +03:00
64d3e659a4 Merge pull request #879 from mailpoet/newsletter_model_update
Newsletter model update [MAILPOET-830]
2017-05-02 16:19:20 +03:00
19458546a0 Updates unit tests 2017-05-02 08:41:51 -04:00
bba7460423 Merge pull request #882 from mailpoet/conflict_resolver_update
Resolves script conflicts in WP's admin footer [MAILPOET-901]
2017-05-02 13:37:20 +03:00
956fdd5cff Improve a deletion test to handle multiple queues, fix comments [MAILPOET-830] 2017-05-02 09:07:38 +03:00
a0289775cb Trashes/restores multiple associated queues when newsletter is
trashed/restored
2017-05-01 20:15:41 -04:00
4c785902bc Resolves script conflicts in WP's admin footer 2017-05-01 11:57:48 -04:00
e29ae4d7c9 Fixes indentation 2017-05-01 09:31:52 -04:00
1ea915017a Fixes unit test 2017-05-01 09:26:36 -04:00
6441c781a5 Moves relations to the top of the model and delete/save/restore/trash methods close to each other for easy navigation 2017-05-01 09:26:35 -04:00
589c54e205 Checks if associated queue exists before trashing/deleting/restoring it 2017-05-01 09:26:35 -04:00
e10b99eaac Deletes all sending queue and segment associations when newsletters are bulk deleted 2017-05-01 09:26:35 -04:00
0316f3ea3e Restores all sending queue associations when newsletters are bulk restored 2017-05-01 09:26:35 -04:00
166fef899f Trashes all sending queue associations when newsletters are bulk trashed 2017-05-01 09:26:35 -04:00
4e850408fc Restores sending queue association when newsletter is restored 2017-05-01 09:26:35 -04:00
6e2494831c Trashes sending queue association when newsletter is trashed 2017-05-01 09:26:35 -04:00
38a7d8f80a Deletes queue and segment associations when deleting newsletter 2017-05-01 09:26:34 -04:00
abfebc8643 Merge pull request #880 from mailpoet/subscriber_shortcode_fix
Returns shortcode's default value when subscriber's first/last name is blank [MAILPOET-899]
2017-05-01 11:28:54 +03:00
40a3487d3d Remove a redundant condition, fix a typo in a test name [MAILPOET-880] 2017-05-01 11:20:33 +03:00
a93865e594 Merge pull request #874 from mailpoet/trashed_segments_fix
Exclude trashed segments from subscriber listing filter and 'not in list' count [MAILPOET-893]
2017-04-30 20:09:23 -04:00
4e76286b44 Returns shortcode's default value when subscriber's first or last name is empty 2017-04-28 09:49:00 -04:00
fbe57e96c6 Merge pull request #878 from mailpoet/contribution_rules
Update rules/guidelines for contributing to this codebase [MAILPOET-898]
2017-04-27 11:22:10 -04:00
950bfb04d6 Update README.md with more new commands 2017-04-27 17:56:36 +03:00
6d43b7b6a9 Update rules/guidelines for contributing to this codebase 2017-04-27 17:51:50 +03:00
e1991deafd Merge pull request #876 from mailpoet/manage_subscription_shortcode_fix
Depreciates and removes certain link shortcodes [MAILPOET-895]
2017-04-27 15:51:26 +03:00
2f1b31aeb2 Adds missing anchor closing tag 2017-04-27 08:41:05 -04:00
ca29eefd7f Merge pull request #877 from mailpoet/form_placement_update
Removes HTML method from form placement [MAILPOET-897]
2017-04-27 15:40:55 +03:00
1421407a23 Merge pull request #875 from mailpoet/smtp_hooks
Adds filter to SMTP transport agent [MAILPOET-889]
2017-04-27 14:43:40 +03:00
36e4bf468d Merge pull request #871 from mailpoet/editor_marionette
Upgrade Marionette version in newsletter editor [MAILPOET-892]
2017-04-27 11:19:46 +03:00
5cd3917f4d Removes HTML method from form placement 2017-04-26 19:38:19 -04:00
586470e8f9 Updates unit tests 2017-04-26 17:58:45 -04:00
b02e9f5ab3 Depreciates and removes server-side rendering of subscription_unsubscribe,
subscription_manage and newsletter_view_in_browser
2017-04-26 17:47:52 -04:00
4a538e677d Adds filter to SMTP transport agent 2017-04-26 09:55:57 -04:00
cc2fdbe5be Merge pull request #864 from mailpoet/campaign_stats
Add detailed stats page support in Free, change stats style [PREMIUM-1] [MAILPOET-877]
2017-04-26 14:30:51 +03:00
3833688115 Exclude trashed segments from subscriber listing filter and 'not in list' count [MAILPOET-893] 2017-04-26 11:23:16 +03:00
1639741e55 Bump up release version to 3.0.0-beta.28 2017-04-25 19:00:18 +03:00
ab0d573a66 Merge pull request #873 from mailpoet/import_results_fix
Keeps track of the number of updated/created subscribers over multiple server requests [MAILPOET-894]
2017-04-25 18:26:38 +03:00
26c582b19f Keeps track of the number of updated/created subscribers over multiple
server requests
2017-04-25 11:00:52 -04:00
3bc53f9f09 Remove Premium-only styles from Free, cleanup styles [PREMIUM-1] 2017-04-25 12:46:05 +03:00
bb220baf6a Add names to constants, rename vars for clarity [MAILPOET-877] 2017-04-25 12:46:04 +03:00
121a78f42a Update an open rate improvement KB link URL [MAILPOET-877] 2017-04-25 12:46:04 +03:00
4257aa634e Don't show green box and KB link in stats for welcome emails [MAILPOET-877] 2017-04-25 12:46:03 +03:00
95ff83557f Add a green box in stats for recently sent newsletters, add help KB link [MAILPOET-877] 2017-04-25 12:46:03 +03:00
e9070de9c4 Add badges to stats in a newsletter listing, change stats style [PREMIUM-1] [MAILPOET-877] 2017-04-25 12:45:52 +03:00
72aa087411 Localize formatting to 1 decimal [PREMIUM-1] 2017-04-25 12:45:50 +03:00
fbc0a3ad8d Add detailed stats page support in Free [PREMIUM-1] 2017-04-25 12:45:49 +03:00
afedc409f5 Merge pull request #872 from mailpoet/newsletter_id_number_format_fix
Adds intval filter and fixes issue with number format applied on IDs >= 1000 [MAILPOET-891]
2017-04-25 12:27:17 +03:00
0360f16dc8 Merge pull request #865 from mailpoet/api_versioning
Adds versioning to our public API [MAILPOET-881]
2017-04-25 12:07:17 +03:00
f4800dbbae Removes namescape format enforcement 2017-04-24 20:52:01 -04:00
15ddc8454e Adds intval filter and fixes issue with number format applied on IDs
>=1000
2017-04-24 19:25:17 -04:00
f8df4de711 Merge pull request #868 from mailpoet/bounce_doc_link
Add a link to the bounce article in advanced settings [MAILPOET-868]
2017-04-24 19:11:03 -04:00
a0cb18e1a1 Merge pull request #869 from mailpoet/html_notices_fix
Wrap notices containing HTML in a paragraph, upgrade notice classes [MAILPOET-733]
2017-04-24 16:09:50 -04:00
509ec7d3d3 Fix posts block settings to not use deprecated CompositeView 2017-04-24 18:00:23 +03:00
aa2416f353 Simplify settings views to use methods defined in base settings view 2017-04-24 18:00:23 +03:00
167a605658 Switch Container block view to use methods defined by base view 2017-04-24 18:00:23 +03:00
592f11bd5f Fix App activation calls, fix block insertion animations 2017-04-24 18:00:23 +03:00
92b128039a Fix displaying placeholder message on empty containers 2017-04-24 18:00:23 +03:00
5efe611b2d Remove obsolete comments, fix ALC settings 2017-04-24 18:00:23 +03:00
477e2737b1 Fix sorting of social icons in settings 2017-04-24 18:00:23 +03:00
dc8bacc27d Fix drag&drop 2017-04-24 18:00:23 +03:00
0b8c787cda Partially migrate newsletter editor to Marionette 3.x from 2.x 2017-04-24 18:00:23 +03:00
4f5c464659 Merge pull request #866 from mailpoet/list_unsubsribe_url
List unsubsribe url [MAILPOET-797]
2017-04-24 14:58:06 +03:00
4f432645b1 Merge pull request #870 from mailpoet/welcome_page_update
Update the Welcome page [MAILPOET-884]
2017-04-24 13:23:39 +03:00
5fa7930896 Redefines how endpoint namespaces are set
Updates error response to terminate connection only on AJAX requests
Optimizes and cleans up code based on code revew comments
2017-04-20 22:34:18 -04:00
f9efd536d9 Update the Welcome page [MAILPOET-884] 2017-04-20 21:00:09 +03:00
6a65ff5e5d Removes default version
Updates all AJAX requests to include api version
Requires namespaces to have version
Clean up code
2017-04-19 23:34:40 -04:00
b549f83422 Updates form subscription class to use the main API class instead of calling directly API endpoint
Modifies forms to pass api_version
Modifies forms to pass store form-specific values (e.g., form_id, email) inside a separate data array
2017-04-19 15:38:16 -04:00
a9c80c031f Adds version support to public API 2017-04-19 15:38:16 -04:00
405bea3049 Upgrade notice classes from deprecated ones [MAILPOET-733] 2017-04-19 17:11:42 +03:00
6954acd0b3 Wrap notice messages containing HTML in a paragraph to avoid broken styles [MAILPOET-733] 2017-04-19 17:11:14 +03:00
efd15d5d18 Add a link to the bounce article in advanced settings [MAILPOET-868] 2017-04-19 10:34:30 +03:00
6566622167 Bumps up release version to 3.0.0-beta.27
Updates changelog
Updates readme.txt based changes proposed by Kim
Cleans up language in readme.txt
2017-04-18 20:05:24 -04:00
8157780b68 removing uneeded code and moving the url generation to proper class 2017-04-18 21:12:41 +02:00
975546915e Merge pull request #867 from mailpoet/requirements_checker_update
Adds requirement check for ZIP and XML PHP extensions [MAILPOET-874]
2017-04-18 10:46:42 +03:00
319d591662 Merge pull request #863 from mailpoet/editor_tinymce
TinyMCE fixes [MAILPOET-880] [MAILPOET-829] [MAILPOET-862]
2017-04-17 09:13:35 +03:00
1dd6c91529 Updates missing requirements language 2017-04-16 23:54:10 -04:00
c4f0426775 Adds checker for XML and ZIP extensions 2017-04-16 21:10:15 -04:00
53f5a122bd Merge pull request #861 from mailpoet/post_filters
Fix post filters for custom post types in ALC [MAILPOET-838]
2017-04-16 19:52:01 -04:00
a7142ed21b modified SendingQueue Tests to ensure it passes the correct unsubscribe URL to Mailer 2017-04-15 22:14:40 +00:00
771a1bfc44 Adding List-Unsubscribe to header of newsletters 2017-04-15 21:21:28 +00:00
53169bba78 Merge pull request #860 from mailpoet/import_fixes
Fixes SQL errors & next button not working on step 2 of import [MAILPOET-876] [MAILPOET-766] [MAILPOET-879] [MAILPOET-828]
2017-04-14 09:03:59 +03:00
e3b8c1836b Adds additional new and existing subscribers to the test method to
ensure that data between new subscribers does not mix
2017-04-13 15:57:04 -04:00
a4b091dc32 Extends test condition to check for all new subscriber column data 2017-04-13 10:50:36 -04:00
448c9ddaa8 Fixes custom column names not being automatically matched on step 2 of
import
2017-04-13 10:10:00 -04:00
ac574acf8e Merge branch 'import_fixes' of mailpoet:mailpoet/mailpoet into import_fixes 2017-04-13 09:41:46 -04:00
aa15b9420a Replaces redundant search with one-time lookup 2017-04-13 09:28:54 -04:00
2b7f5c321e Merge pull request #862 from mailpoet/remote_images
Fixes Image block to update image dimensions when image src changes [MAILPOET-762]
2017-04-13 13:51:47 +03:00
bee9bfcfcc Fix data being mixed up when splitting subscribers, remove excessive arguments [MAILPOET-828] 2017-04-13 11:08:20 +03:00
b7d73dcfaa Updates unit test 2017-04-12 09:49:42 -04:00
5b4fa4ea2b Fixes custom fields not being updated or causing integrity constraint
error: https://mailpoet.atlassian.net/browse/MAILPOET-828
2017-04-12 09:40:15 -04:00
12e5fe77de Perform caret positioning only on TinyMCE activation click 2017-04-12 14:37:47 +03:00
2dca10c539 Fix cursor positioning when activating TinyMCE on click [MAILPOET-880] 2017-04-12 14:07:19 +03:00
ceba5b3d0b Fix pasting from text editors and word processors [MAILPOET-829] 2017-04-12 13:17:45 +03:00
c05cf3cad4 Update TinyMCE for fixed triple-click behavior [MAILPOET-862] 2017-04-12 13:14:27 +03:00
d6f5a39829 Simplifies subscriber splitting code and adds comments 2017-04-11 22:12:50 -04:00
30d67508cb Fixes Image block to update image dimensions when image src changes 2017-04-11 19:38:57 +03:00
63b8d892f7 Update changelog entries to use asterisks for list items instead of
dashes
2017-04-11 16:05:53 +03:00
10137d8551 Bump up release version to 3.0.0-beta.26 2017-04-11 15:46:32 +03:00
9ef74e0951 Stops execution when there are no subscriber columns to update 2017-04-10 21:41:37 -04:00
89ff93958f Removes subscriber object modification logic from the splitSubscribersData() method
Uses 2 separate objects with its own data for existing and new subscribers
Extends only new subscribers' object when it is missing required fields
2017-04-10 21:41:21 -04:00
8d870e85eb Switch to get_bloginfo() from bloginfo() to prevent output 2017-04-10 19:44:32 +03:00
0cdb426712 Fix ALC filtering for custom taxonomies and post types 2017-04-10 19:23:19 +03:00
b9f7a5673f Removes lefover test code 2017-04-10 11:32:38 -04:00
7ffbf6c378 Updates code style and adds wp_user_id column to the list of columns
that should be ignore when updating existing subscribers
2017-04-09 22:05:02 -04:00
3a9c006cf9 Prevents overwriting existing subscribers' status (and other required fields) unless
the import object contains data for those fields
2017-04-09 22:04:56 -04:00
a9edb383b4 Fixes next button not appearing when list is first unselected and then
selected back
2017-04-09 21:49:24 -04:00
ec23a73edb Merge pull request #859 from mailpoet/trailing_br_rendering_fix
Fix last <br/> removal cutting off text when rendering a text block [MAILPOET-856]
2017-04-06 21:57:07 -04:00
10a164ee0c Merge pull request #858 from mailpoet/customizer_fix
Rename a 'method' field in a form widget so it doesn't break the WP interactive customizer [MAILPOET-851]
2017-04-06 21:55:24 -04:00
37fcd5699b Fix last <br/> removal cutting off text when rendering a text block [MAILPOET-856] 2017-04-06 10:07:11 +03:00
66d969cc2f Merge pull request #857 from mailpoet/settings-css-update
Removes sending method's heading line-height [MAILPOET-873]
2017-04-05 18:51:09 +03:00
9d358f74dd Rename a 'method' field in a form widget so it doesn't break the WP interactive customizer [MAILPOET-851] 2017-04-05 18:35:13 +03:00
57e00e3097 Removes sending method's heading line-height 2017-04-05 10:45:31 -04:00
53afbea6ec Bump up release version to 3.0.0-beta.25 2017-04-04 18:22:44 +03:00
2c2c0b3db4 Merge pull request #856 from mailpoet/sending_limit_enforcement_fix
Fixes sending limit not being enforced [MAILPOET-872]
2017-04-04 17:07:51 +03:00
e235ee66eb Adds regression unit test 2017-04-04 09:59:06 -04:00
0ef430567b Fixes sending limit not being enforced when email frequency limit is
changed to a lesser value OR when it is changed while sending is in
progress
2017-04-04 09:43:27 -04:00
74aef73f75 Merge pull request #855 from mailpoet/php53-fix
Fixes reference to self in anonymous function [MAILPOET-871]
2017-03-31 21:31:20 +03:00
99eb72428f Fixes reference to self in anonymous function 2017-03-31 12:51:58 -04:00
065b160155 Merge pull request #854 from mailpoet/subscriber_listing_performance
Improve performance of a subscriber listing on MySQL 5.5 and lower [MAILPOET-867]
2017-03-30 09:51:47 -04:00
6811d8e38d Improve performance of a subscriber listing on MySQL 5.5 and lower [MAILPOET-867] 2017-03-30 13:12:53 +03:00
5f75efddf1 Updates changelog and bumps version to 3.0.0-beta.24 2017-03-28 14:19:11 -04:00
822a7ac5f5 Merge pull request #852 from mailpoet/translation_string_escaping_fix
Escapes quotation marks in translation results [MAILPOET-864]
2017-03-28 19:28:57 +03:00
06e1ac9bb5 Escapes translations for output in HTML attributes 2017-03-28 12:02:29 -04:00
a3530c3367 Escapes translations for JS output 2017-03-28 11:17:00 -04:00
ec35bfb2d4 Reverts back previous code 2017-03-28 11:16:09 -04:00
ed3e46bebb Merge pull request #853 from mailpoet/tracking_code_update
Makes tracking image transparent and fixes CSS rule parsing logic [MAILPOET-827]
2017-03-28 11:36:54 +03:00
87b270482b Fixes rules with colons (e.g, background-image: url(http://....);) from
being incorrectly parsed
2017-03-26 18:45:07 -04:00
d22ba55858 Outputs transparent gif instead of red color 2017-03-26 18:45:07 -04:00
835f25cc82 Fixes unit test that fails on the last Saturday of the month 2017-03-25 02:24:38 -04:00
11944283b0 Escapes quotation marks in translation results 2017-03-24 20:38:04 -04:00
dc704a92de Merge pull request #851 from mailpoet/import_language_update
Updates example import paste data (textbox hint) [MAILPOET-863]
2017-03-24 18:01:12 +02:00
dca1e9e1a7 Merge pull request #850 from mailpoet/manage_subscription_descr
Add details to the Manage Subscription description [MAILPOET-853]
2017-03-24 17:56:27 +02:00
00781be077 Updates example import paste data 2017-03-23 13:27:48 -04:00
ac80148f5b Merge pull request #844 from mailpoet/ga_tracking
JS hooks & GA tracking support [PREMIUM-2]
2017-03-23 14:58:58 +02:00
ff36833270 Add a hook for reinstalling Premium [PREMIUM-2] 2017-03-23 15:27:15 +03:00
612c7d76a0 Add details to the Manage Subscription description [MAILPOET-853] 2017-03-22 13:19:26 +03:00
32097b4512 Test that Premium hooks are executed [PREMIUM-2] 2017-03-21 21:36:36 +03:00
d686f75222 Swap JS actions with filters for robustness & testability, get rid of URL key hashing [PREMIUM-2] 2017-03-21 13:34:47 +03:00
bcc01df0b8 Merge pull request #849 from mailpoet/transifex_upload
Upload translation files to Transifex via publish command [MAILPOET-855]
2017-03-20 19:40:19 +02:00
ee12f4d304 Move a hook to be always executed after rebasing [PREMIUM-2] 2017-03-20 16:23:16 +03:00
16c1607850 Refactor links processing: isolate core logic for easier substitution [PREMIUM-2] 2017-03-20 12:09:58 +03:00
e2864e2243 Add hooks for GA tracking feature [PREMIUM-2] 2017-03-20 12:09:58 +03:00
16dc81150d Execute mailpoet_initialized hook earlier after setup [PREMIUM-2]
This is done because Router can seize the request and prevent subsequent actions like Premium hooking from being run, so hooks didn't work in cron daemon.
2017-03-20 12:08:40 +03:00
ed4d3d52ed Add hooks for Premium translations and scripts [PREMIUM-2] 2017-03-20 12:08:40 +03:00
37a6a74b6e Extract React libraries to a separate chunk and expose them globally [PREMIUM-2] 2017-03-20 12:08:40 +03:00
136a531047 Rename newsletters 3rd step hook [PREMIUM-2] 2017-03-20 12:08:40 +03:00
bef0097f5b Add front-end WP-style hooks support for Premium [PREMIUM-2] 2017-03-20 12:08:39 +03:00
a0d2be50e8 Upload translation files to Transifex via publish command [MAILPOET-855] 2017-03-16 15:11:38 +03:00
18e2d26587 Bump up release version to 3.0.0-beta.23.2 2017-03-15 14:35:44 +02:00
810a7bf544 Merge pull request #848 from mailpoet/welcome_emails_fix
Fix Welcome email sending [MAILPOET-859]
2017-03-15 13:59:57 +02:00
1010c6f4f0 Remove a space [MAILPOET-859] 2017-03-15 13:15:34 +03:00
8dd698ec75 Fix Welcome email sending [MAILPOET-859] 2017-03-15 12:12:47 +03:00
95e66f1f29 Bump up release version to 3.0.0-beta.23.1 2017-03-14 16:13:07 +02:00
ac0460ab04 Merge pull request #847 from mailpoet/freeze_dependencies
Freeze PHP and JS dependencies to specific versions [MAILPOET-858]
2017-03-14 16:58:23 +03:00
2d059debb7 Freeze PHP and JS dependencies to specific versions 2017-03-14 15:11:35 +02:00
df0ad2df37 Update release version to 3.0.0-beta.23 2017-03-14 13:18:21 +02:00
0f7725e6af Merge pull request #842 from mailpoet/verify_subscription_status_during_sending
Prevents sending to unsubscribed subscribers [MAILPOET-824]
2017-03-14 10:49:43 +03:00
eda346c582 Fix a unit test for PHP 7.1 [MAILPOET-824] 2017-03-14 10:31:44 +03:00
94060a6443 Merge pull request #846 from mailpoet/transifex_import
Add importing of translations from Transifex [MAILPOET-849]
2017-03-13 18:45:10 +02:00
1cd7c5e876 Update README, force translations downloading, set shell script permissions [MAILPOET-849] 2017-03-13 19:34:17 +03:00
b369cadde0 Merge pull request #841 from mailpoet/post_notification_reschedule
Reschedules sending queues when scheduling options change [MAILPOET-837]
2017-03-13 17:21:03 +02:00
5321a136e7 Add importing of translations from Transifex [MAILPOET-849] 2017-03-13 17:43:56 +03:00
d4c04f29bf Merge pull request #845 from mailpoet/readme_update
Update translations section of readme.txt [MAILPOET-854]
2017-03-13 14:56:47 +02:00
20798d8957 Update translations section of readme.txt [MAILPOET-854] 2017-03-13 12:55:52 +03:00
3cde437628 Adds enforcement of global subcriber subscription status and
subscribption to segments to which newsletter is sent
2017-03-09 20:38:34 -05:00
8db7af48cd Merge pull request #843 from mailpoet/http_build_query_fix
Forces ampersand as query separator for mailers [MAILPOET-850]
2017-03-09 13:40:08 +03:00
d05d033727 Forces ampersand as query separator for mailers 2017-03-08 14:34:35 -05:00
ccba1925b1 Prevents sending to unsubscribed subscribers 2017-03-07 18:55:49 -05:00
b590586d4c Reschedules previously scheduled sending queues when post notification's
scheduling options change
2017-03-07 18:39:55 -05:00
44c742402c Bump up release verison to 3.0.0-beta.22 2017-03-07 17:49:11 +03:00
3a9db95c37 Merge pull request #840 from mailpoet/sending_batch_size_update
Reduces sending batch size [MAILPOET-847]
2017-03-07 16:53:52 +03:00
5d88938d94 Reduces sending batch size 2017-03-06 19:05:14 -05:00
67e0f1776d Merge pull request #839 from mailpoet/mailer_endpoint_update
Prevents setting current user's name to recipient of test email [MAILPOET-846]
2017-03-06 10:38:34 +03:00
5b68febb05 Removes first/last name that's based on current user from being sent to
test e-mail
2017-03-02 17:28:44 -05:00
9bf65ca798 Merge pull request #838 from mailpoet/editor_notices
Fix notices on newsletter editor page to not be absorbed into contents [MAILPOET-811]
2017-03-01 20:38:58 +03:00
d95aa40502 Fix notices on newsletter editor page to not be absorbed into contents 2017-03-01 17:26:17 +02:00
a59bf76fb4 Update version information for 3.0.0-beta.21 release 2017-02-28 14:11:03 +02:00
51fdc7f1df Merge pull request #837 from mailpoet/catch_cron_exceptions
Catches exception thrown by cron dependency and prevents a fatal error [MAILPOET-844]
2017-02-28 13:20:58 +02:00
aa51b751d0 Merge pull request #835 from mailpoet/translations
Fix translations [MAILPOET-841]
2017-02-28 14:08:44 +03:00
aff522c5cd Merge pull request #836 from mailpoet/translation_string_update
Removes unnecessary period [MAILPOET-842]
2017-02-28 12:40:06 +02:00
66d039ace3 Catches exception thrown by cron dependency and prevents a fatal error 2017-02-27 19:21:32 -05:00
ed5e6cdd8c Removes unnecessary period 2017-02-27 12:58:54 -05:00
47f5e1e7b4 Translate color picker actions in newsletter editor 2017-02-27 19:32:08 +02:00
626d6c0fa9 Fix "newsletter was updated successfully" translation 2017-02-27 19:15:29 +02:00
2b45d64695 Make numberOfItems translation singular/plural aware 2017-02-27 18:33:09 +02:00
c27446666e Translate untranslated strings 2017-02-27 18:33:09 +02:00
7f0195378c Merge pull request #833 from mailpoet/stop_daemon_with_sending_is_paused
Stops cron daemon when sending is paused due to an error [MAILPOET-839]
2017-02-27 16:49:55 +03:00
6caa3a069b Merge pull request #832 from mailpoet/mailer_output_escape_fix
Fixes double escaping of HTML entities in mailer output [MAILPOET-836]
2017-02-27 10:52:10 +03:00
baaf73b584 Merge pull request #834 from mailpoet/mailpoet_mailer_php53_fix
Fixes 'Using $this when not in object context' MailPoet mailer error on PHP 5.3 [MAILPOET-840]
2017-02-27 10:19:21 +03:00
b2a92feb50 Restore unnecessary $this replacements [MAILPOET-840] 2017-02-27 10:18:14 +03:00
c11b9677d5 Fixes 'Using $this when not in object context' error on PHP 5.3 2017-02-26 22:08:34 -05:00
0e5a26ce1f Stops cron daemon when sending is paused due to an error 2017-02-26 11:26:59 -05:00
40ec5569d0 Removes "unprocessed subscriber" message since MailPoet's mailer method
processes subscribers in batches of 50 and it makes no sense to display
them all
2017-02-25 10:32:14 -05:00
d14ecc982b Does not display unprocessed subscriber when sending a test message 2017-02-24 11:18:27 -05:00
9c27384ba3 Passes responsibility for mailer error message HTML entity escaping from
server to the client side
2017-02-24 11:06:20 -05:00
2268f0ffa6 Merge pull request #831 from mailpoet/php53_bulk_trash_and_restore_fix
Fix bulk trashing/restoring not working for newsletters/forms on PHP 5.3 [MAILPOET-835]
2017-02-24 13:22:30 +01:00
bfc04bfa87 Fix bulk trashing/restoring not working for newsletters/forms on PHP 5.3 [MAILPOET-835] 2017-02-24 15:10:38 +03:00
37ac31cdac Bumps up release version to 3.0.0-beta.20 and updates changelog 2017-02-23 19:04:55 -05:00
15096d483f Merge pull request #830 from mailpoet/newsletter_save_fix
Fixes newsletter options being wiped on Step 3 of creation process [MAILPOET-833]
2017-02-23 23:51:59 +03:00
16724affad Remove an excess count() [MAILPOET-833] 2017-02-23 23:42:28 +03:00
384d59abe0 Update Newsletters.php
Removes request interruption when options are not found
2017-02-23 15:25:34 -05:00
027414b7a2 Updates method data verification condition 2017-02-23 14:39:56 -05:00
a1cd56c419 Updates newsletter option creation logic and fixes a bug that results in
them being wiped clean
2017-02-23 14:30:53 -05:00
6ee1c23f9a Merge pull request #829 from mailpoet/post_title_shortcode_fix
Fix post_title shortcode breaking sending if the post is trashed in the process [MAILPOET-831]
2017-02-23 14:41:24 +01:00
44a223eba1 Fix post_title shortcode breaking sending if the post is trashed in the process [MAILPOET-831] 2017-02-23 16:33:18 +03:00
7c66754541 Merge pull request #828 from mailpoet/premium_hooks
Premium hooks / Additional endpoints in Free API [PREMIUM-4]
2017-02-23 15:26:30 +02:00
bb80fc0860 Add unit tests for API endpoints injection [PREMIUM-4] 2017-02-22 18:02:58 +03:00
6c7cc5de0d Implement support for additional endpoints in Free API [PREMIUM-4] 2017-02-22 11:19:35 +03:00
063cc9edc3 added do_action() helper to twig + settings/basics hook 2017-02-22 10:12:08 +03:00
76c283502e Bumps up release version to 3.0.0-beta.19 and updates changelog 2017-02-21 11:55:53 -05:00
554add0882 Merge pull request #823 from mailpoet/smtp_mailer_logger_implementation
Provides detailed SMTP error message and shows last unprocessed subscriber [MAILPOET-823]
2017-02-21 18:09:23 +03:00
689c340081 Converts special characters to HTML entities for all error messages 2017-02-21 09:55:18 -05:00
01e4ed7efc Merge pull request #827 from mailpoet/template_screenshots
Newsletter template fixes [MAILPOET-817]
2017-02-21 15:50:06 +01:00
59f408846a Make all default newsletter templates read-only 2017-02-21 16:32:03 +02:00
64606e69cf Fix Populator to update existing newsletter templates and remove duplicates 2017-02-21 15:46:28 +02:00
e8e0c1e0b3 Automatically update SVN /assets folder upon publishing a release 2017-02-21 15:46:28 +02:00
953c124ef0 Move newsletter template assets to be shared through WP plugin repo 2017-02-21 15:46:28 +02:00
2e1be55bf9 Merge pull request #826 from mailpoet/newsletter_restore_fix
Set newsletter status to draft when restoring newsletters trashed during sending [MAILPOET-816]
2017-02-21 13:54:17 +01:00
33125f2ce7 Merge pull request #820 from mailpoet/translations
Fix translations based on translators' feedback [MAILPOET-819]
2017-02-21 13:20:24 +01:00
e99d2b380c Fix a space [MAILPOET-816] 2017-02-21 13:34:33 +03:00
bcf89f0dfe Set newsletter status as draft when restoring newsletters trashed during sending [MAILPOET-816] 2017-02-21 13:13:59 +03:00
3d64a42126 Merge pull request #819 from mailpoet/bulk_delete_custom_fields
Deletes custom fields associations when bulk deleting subscribers [MAILPOET-820]
2017-02-21 11:32:11 +02:00
97eb772ab8 Enables temporarily disabled unit test 2017-02-20 13:17:06 -05:00
bc40bbb44b Convert special characters to HTML entities when displaying email
addresses
2017-02-20 13:03:08 -05:00
ed117e53d9 Adds unit test for bulk delete action 2017-02-20 12:58:26 -05:00
b74f40c7a8 Makes code more readable/cleaner 2017-02-20 09:30:14 -05:00
bf4023c0ad Restores accidentally removed tests 2017-02-20 09:07:18 -05:00
c98cdb3e57 Merge pull request #811 from mailpoet/popups_focus
Focus on popups by default [MAILPOET-724]
2017-02-20 15:36:07 +02:00
a01b094f9f Merge pull request #824 from mailpoet/import_regex_update
Updates email regex from loose HTML5 standard to stricter RFC 5322 [MAILPOET-825]
2017-02-20 16:30:01 +03:00
e75bb7ee59 Capitalize words of a title in welcome template 2017-02-20 15:22:28 +02:00
563c62855a Undo title capitalization changes, as not all languages use it 2017-02-20 14:58:53 +02:00
8a15424a62 Remove "Read more" link to obsolete KB article 2017-02-20 14:58:53 +02:00
8eb04534bc Fixed translations based on feedback from translators on Transifex 2017-02-20 14:58:53 +02:00
b3abf46604 Update outdated newsletter template translation strings 2017-02-20 14:58:53 +02:00
6f19a1593e Fix translations from GDocs based on FxB's feedback [MAILPOET-819] 2017-02-20 14:58:53 +02:00
883711698e Updates email regex from loose HTML5 standard to stricter RFC 5322
that's required by some mail transport agents
2017-02-18 10:33:45 -05:00
bdcfd77d42 Returns last unprocessed subscriber in error message 2017-02-16 23:25:05 -05:00
2cd503e0e0 Merge pull request #822 from mailpoet/php71_button_rendering
Fix button block rendering producing notices on PHP 7.1 [MAILPOET-822]
2017-02-17 05:05:38 +01:00
c9519f0b3d Adds logger to record SMTP communication
Returns a more complete error message and last unprocessed subscriber
2017-02-16 22:45:09 -05:00
0daa3057e7 Focus on all modal types by default [MAILPOET-724] 2017-02-16 21:58:41 +03:00
0ac5129e0e Merge pull request #818 from mailpoet/destroyed_newsletter
Fix newsletter corruption when going back to editor from last newsletter creation step [MAILPOET-787]
2017-02-16 18:39:01 +03:00
a3aa347fdf Fix button block rendering producing notices on PHP 7.1 [MAILPOET-822] 2017-02-16 17:53:36 +03:00
a40d1122a5 Change corrupted newsletter notice to a static (dismissable) one 2017-02-16 11:21:01 +02:00
9955b8fda1 Merge pull request #821 from mailpoet/php53_fix
Replaces references to self::$variable with Class:$variable for PHP 5.3 hosts [MAILPOET-821]
2017-02-16 11:53:34 +03:00
c994438fa8 Replace more self:: references in closures for PHP 5.3 [MAILPOET-821] 2017-02-16 11:22:26 +03:00
3085ae575a Replaces references to self::$variable with Class:$variable for PHP 5.3
hosts
2017-02-15 18:27:52 -05:00
793b8ce29e Deletes custom fields associations when bulk deleting subscribers 2017-02-15 15:40:26 -05:00
5d447cdec3 Merge pull request #817 from mailpoet/large_list_sending_fix
Fixes DB query that returns large result set when there are thousands of subscribers [MAILPOET-815]
2017-02-15 19:01:26 +02:00
e7698b0131 Optimizes DB query and result processing code 2017-02-15 10:02:13 -05:00
f86121b656 Update the error message to a clearer one 2017-02-15 15:05:30 +02:00
45c223c14b Fix newsletter corruption when going back to editor from last newsletter step 2017-02-15 15:04:07 +02:00
66990d62c2 Restore focus on previously focused element after closing a modal box [MAILPOET-724] 2017-02-15 10:09:14 +03:00
4439111a44 Focus on popups by default [MAILPOET-724] 2017-02-15 10:09:14 +03:00
440b7e4e6c Fixes DB query that returns large result set when there are thousands of
subscribers
2017-02-14 21:07:40 -05:00
b90d7894ca Bump up release version to 3.0.0-beta.18 2017-02-14 17:49:48 +03:00
a0b37eb08c Merge pull request #810 from mailpoet/list_stats_fix
Fix subscriber stats for lists ignoring subscription status and including trashed items [MAILPOET-807]
2017-02-14 14:27:59 +01:00
44b83436bc Merge pull request #809 from mailpoet/view_plans_button_utm
Add GA UTM params to 'View Email Plans' link in Settings [MAILPOET-806]
2017-02-14 13:54:55 +01:00
0d75ee0e12 Merge pull request #816 from mailpoet/utf8_renderer_fix
Fixed UTF-8 encoding in renderer on PHP 5.3 [MAILPOET-812]
2017-02-14 12:39:53 +03:00
50d77f2aff Merge pull request #814 from mailpoet/robo_upgrade
Update Robo from 0.7.2 to 1.0.5 [MAILPOET-813]
2017-02-14 11:22:56 +02:00
cb813171ce Remove html_entity_decode() constants not supported by PHP 5.3 [MAILPOET-812] 2017-02-14 12:22:35 +03:00
3f188e3690 Updates lint rules to ignore pQuery class (name not in camel case caps,
etc.)
2017-02-13 21:00:46 -05:00
e74938df90 Updates code to use the extended pQuery class 2017-02-13 21:00:45 -05:00
93f7739f46 Extends pQuery to use UTF-8 encoding on older versions of PHP 2017-02-13 21:00:32 -05:00
a918091977 Merge pull request #815 from mailpoet/sendgrid_fix
Fixes SendGrid's error response [MAILPOET-810]
2017-02-13 10:51:34 +03:00
b539eae7f9 Fix SendGrid error message assignment [MAILPOET-810] 2017-02-13 10:35:21 +03:00
228a671749 Converts SendGrid's error response message from array to string 2017-02-11 05:41:02 -05:00
70fe253db3 Update Robo from 0.7.2 to 1.0.5 2017-02-09 19:08:04 +03:00
bdb97261fd Merge pull request #813 from mailpoet/alc_categories_fix
Fix categories not showing for posts in newsletter editor [MAILPOET-808]
2017-02-09 06:23:01 -05:00
8507c77699 Fix categories not showing for posts in newsletter editor [MAILPOET-808] 2017-02-09 11:13:46 +03:00
771ff134a8 Merge pull request #812 from mailpoet/create_form_in_widget_fix
Fix 'Create a new form' link on widgets page having no feedback [MAILPOET-691]
2017-02-08 11:05:23 -05:00
9c1cbba163 Fix 'Create a new form' link on widgets page having no feedback [MAILPOET-691] 2017-02-08 13:30:49 +03:00
f51122b58f Fix subscriber stats for lists ignoring subscription status and including trashed items [MAILPOET-807] 2017-02-06 16:04:16 +03:00
e8fd992235 Add GA UTM params to 'View Email Plans' link in Settings [MAILPOET-806] 2017-02-06 12:56:39 +03:00
e126278e32 Bump up the release version to 3.0.0-beta.17 2017-02-02 17:47:21 +03:00
9d2651083d Merge pull request #808 from mailpoet/translation_plugin
Whitelist translation plugin [MAILPOET-805]
2017-02-02 15:48:02 +03:00
1e1ae4c3cf Whitelist translation handling plugin's admin assets on MP pages
[MAILPOET-805]
2017-02-02 14:10:57 +02:00
385f5ab535 Merge pull request #807 from mailpoet/sending_svc_subscriber_count
Add subscriber count reporting on Sending Service key validation [MAILPOET-804]
2017-02-02 13:19:39 +02:00
dc371d76ca Rework subscriber count reporting after a code review [MAILPOET-804]
Move updateSubscriberCount() out of checkKey()
Move wp_remote_post() to request()
Simplify a response check
2017-02-01 21:04:11 +03:00
be0c9b71d8 Add subscriber count reporting on Sending Service key validation [MAILPOET-804] 2017-02-01 15:58:49 +03:00
6e250d9317 Merge pull request #806 from mailpoet/update_sending_methods_strings
Update sending method descriptions for the new shop [MAILPOET-794]
2017-02-01 13:54:52 +02:00
afeaa00fc7 Merge branch 'master' into update_sending_methods_strings 2017-02-01 14:33:05 +03:00
6575d1579d Merge pull request #796 from mailpoet/sending_svc_api_consolidation
Consolidate Sending Service API calls in one class [MAILPOET-795]
2017-02-01 13:29:34 +02:00
282199d362 Merge pull request #784 from mailpoet/sending_svc_key_validation
Add sending service key validation [MAILPOET-743]
2017-02-01 13:29:08 +02:00
3e5c46e8f3 Cut the text to fit in a smaller box [MAILPOET-794] 2017-02-01 13:11:48 +03:00
71515f3ff0 Updated changelog to fix WP plugin repo parsing 2017-01-31 17:24:35 +02:00
934a8d5bf8 Update changelog 2017-01-31 16:44:14 +02:00
6be2464c86 Fix build script to include mailpoet_initializer.php in the build 2017-01-31 14:54:39 +02:00
ace8a52262 Update release information for 3.0.0-beta.16 2017-01-31 14:20:30 +02:00
7d37d279cd Merge pull request #805 from mailpoet/translations
Translations update
2017-01-30 18:18:22 -05:00
5525a959a8 Fix remaining unit tests after translation changes 2017-01-30 21:50:22 +02:00
a421dbd674 Fix tests 2017-01-30 21:35:49 +02:00
bedfc4f80c Add context to 'Select' translation strings 2017-01-30 21:35:49 +02:00
af2a6b2559 Fix parsing of starting and ending translation string quotes 2017-01-30 21:35:49 +02:00
cb8c32e171 Add 'Move to trash' to separate noun from verb for certain languages 2017-01-30 21:35:49 +02:00
8abec208fc Rewritten some translation strings 2017-01-30 21:35:49 +02:00
5264cb1cf4 Split firstname and lastname into two words 2017-01-30 21:33:59 +02:00
47e0e1a836 Add one and remove two spaces 2017-01-30 21:33:59 +02:00
e602612cd6 Add missing hyphens 2017-01-30 21:33:59 +02:00
9f7ae122e3 Add missing periods to translation strings 2017-01-30 21:33:59 +02:00
22caba31e3 Update sending method strings for the new shop [MAILPOET-794] 2017-01-30 13:44:26 +03:00
82ab4acb8d Improve key validation messages handling [MAILPOET-743]
Hide error messages when the sending method is changed
Verify key and display a message when saving settings
2017-01-30 13:32:43 +03:00
9466be4793 Merge pull request #804 from mailpoet/requirement_check_update
Fixes PDO extension check condition [MAILPOET-800 ]
2017-01-30 11:04:09 +03:00
a2e2090cbb Update KB link in the main plugin file 2017-01-30 10:41:11 +03:00
d100d61403 Updates KB links 2017-01-28 11:07:41 -05:00
d781ef6d01 Fixes scheduler test that fails on last Saturday 2017-01-28 11:07:26 -05:00
1dafc4da04 Adds CSS Parser to the list of vendor classes 2017-01-27 19:05:44 -05:00
063c271e40 Fixes PDO extension check condition 2017-01-27 18:49:33 -05:00
a53007e30b Merge pull request #803 from mailpoet/conflict_resolver_fix
Fixes fatal error on PHP 5.3 [MAILPOET-798]
2017-01-27 20:17:10 +03:00
c616b3299a Reverts to the use of public class property and introduces ugliness of
$_this
2017-01-27 11:51:26 -05:00
86eab0d8f8 Merge pull request #802 from mailpoet/conflict_resolver_fix
Fixes fatal error on PHP 5.3 [MAILPOET-798]
2017-01-27 19:38:12 +03:00
bfd35b1cdc Changes class variable to static; prevents
Fixed 'using $this when not in object contex' error on PHP 5.3
2017-01-27 09:12:31 -05:00
461203279b Consolidate Sending Service API calls in one class [MAILPOET-795] 2017-01-27 16:35:12 +03:00
b9c45b46ba Remove a duplicate function [MAILPOET-743] 2017-01-27 16:28:58 +03:00
1a42ae4cca Fix a unit test [MAILPOET-743] 2017-01-27 16:22:12 +03:00
f2ad7ee34c Fix code style [MAILPOET-743] 2017-01-27 16:22:12 +03:00
37017ef69d Fix appearance and logic of some key validation messages [MAILPOET-743] 2017-01-27 16:22:12 +03:00
157725c300 Fix a string for an expiring key [MAILPOET-743] 2017-01-27 16:22:12 +03:00
98d6f55a6e Tweak Sending Service key validation after a code review [MAILPOET-743]
* Abstract key state to unbound it from the API response codes
* Rename SendingServiceKeyCheck task for clarity
* Add a setter for the API key in the Bridge API class
* Make some smaller fixes
2017-01-27 16:22:11 +03:00
425d45a862 Remove unused imports from Cron tests [MAILPOET-743] 2017-01-27 16:22:11 +03:00
438b4fb1ec Add unit tests [MAILPOET-743] 2017-01-27 16:22:09 +03:00
1f91d40def Add sending service key validation [MAILPOET-743] 2017-01-27 16:20:26 +03:00
c5e1def2f9 Merge pull request #801 from mailpoet/list-unsubscribe_header
Add List-Unsubscribe header to emails [MAILPOET-793]
2017-01-26 17:51:33 -05:00
65ba834742 Merge pull request #800 from mailpoet/forms_listing_copy_fix
Fix a string displayed when there are no forms [MAILPOET-738]
2017-01-26 17:40:12 -05:00
19dc048858 Remove unused imports [MAILPOET-793] 2017-01-26 21:11:39 +03:00
938279bf8f Remove unsubscribe link generation from Mailer - to be solved in another task [MAILPOET-793] 2017-01-26 21:07:03 +03:00
dd2df429ef Add List-Unsubscribe header to emails [MAILPOET-793]
Amazon SES supports custom headers only via 'SendRawEmail' action
MailPoet Sending Service doesn't support custom headers yet
2017-01-26 15:38:23 +03:00
c4e05912ff Fix a string displayed when there are no forms [MAILPOET-738] 2017-01-26 11:19:23 +03:00
bb34e8477f Merge pull request #799 from mailpoet/welcome_email_preview_fix
Prevents previewing of sent welcome emails [MAILPOET-796]
2017-01-26 11:10:11 +03:00
32f7d7771f Prevents previewing of sent welcome emails 2017-01-25 19:06:35 -05:00
e77717c4c2 Merge pull request #798 from mailpoet/form_segments_fix
Filter lists that can be subscribed to using any particular form [MAILPOET-777]
2017-01-25 18:34:30 -05:00
d27d5ae5dd Merge pull request #797 from mailpoet/form_fields_filter
Fix fubscription form failing when some fields are absent or don't ex…
2017-01-25 17:48:48 -05:00
168263f0ea Fix code style [MAILPOET-777] 2017-01-25 16:29:23 +03:00
f1ced11809 Remove leading slashes in unit test imports [MAILPOET-764] 2017-01-25 16:28:36 +03:00
c2546e8aed Filter lists that can be subscribed to using any particular form [MAILPOET-777] 2017-01-25 16:15:42 +03:00
b7ef191641 Remove leading slashes in imports [MAILPOET-764] 2017-01-25 10:22:27 +03:00
2220a13399 Remove unused imports [MAILPOET-764] 2017-01-25 10:14:38 +03:00
31ec7475c8 - Bumps up release version to Beta 15
- Updates changelog
- Cleans up code comments in the main mailpoet.php file
2017-01-24 13:20:08 -05:00
bfdc13a8d1 Fix fubscription form failing when some fields are absent or don't exist [MAILPOET-764] 2017-01-24 21:12:56 +03:00
9a3c4ff7de Merge pull request #794 from mailpoet/initial_requirements_check
Updated plugin initialization logic [MAILPOET-790]
2017-01-23 18:45:41 +02:00
25410eb09c - Prefixes functions 2017-01-23 11:08:36 -05:00
122f88668a - Removes anonymous functions not supported on PHP 5.2 2017-01-23 11:07:29 -05:00
9c35eb9723 - Moves plugin initialization into a separate file that's included after
PHP version and core dependency checks are run
2017-01-23 09:05:21 -05:00
fa528ed1ff Merge pull request #795 from mailpoet/preview_link_update
Allows sharing of newsletter preview links [MAILPOET-791]
2017-01-23 15:52:11 +03:00
1a7623bc4a - Adds unit tests 2017-01-20 09:24:45 -05:00
3a4a37e1af - Sets subscriber to the logged in WP user when subscriber is not found 2017-01-20 09:16:43 -05:00
888a566dda - Includes newsletter hash in preview URLs thus not requiring user
validation
2017-01-20 09:16:43 -05:00
3567779faf Merge pull request #792 from mailpoet/remove_all_lists_fix
Fix 'Subscribers without a list' filter not showing unsubscribed subscribers [MAILPOET-789]
2017-01-19 20:47:58 -05:00
cb5b0bd753 - Removes PHP version check that's been moved to the main plugin file 2017-01-19 20:29:03 -05:00
88d0511adb - Loads autoloader class and initializes the plugin 2017-01-19 20:29:02 -05:00
a4a654cfd5 - Removes the use of namespace to ensure PHP 5.2 compatibility
- Adds a PHP version check and disabled the plugin if the check fails
- Adds a check for Initializer and autoload core files
- Moves plugin initialization logic outside to the Initializer class
2017-01-19 20:28:57 -05:00
4d3c90ce0d Exclude trashed and multiple-list subscribers [MAILPOET-789] 2017-01-19 23:04:29 +03:00
f51aba4dbd Bumps up release version to Beta 14
Updates changelog
2017-01-19 12:30:17 -05:00
f651c06cb9 Merge pull request #793 from mailpoet/conflict_resolver_fix
Replaces reliance on style/script names with asset location [MAILPOET-723]
2017-01-19 18:35:20 +02:00
940328c608 - Updates assets locations to more precise names 2017-01-19 11:26:32 -05:00
ce85600753 Merge pull request #789 from mailpoet/build_sh_update
Update tests and risky files removal in build.sh
2017-01-19 10:24:27 -05:00
5666116645 - Replaces reliance on style/script names with asset location
- Updates unit tests
2017-01-19 10:20:22 -05:00
815461a851 Add a unit test [MAILPOET-789] 2017-01-19 17:37:01 +03:00
1102467e39 Fix 'Subscribers without a list' filter not showing unsubscribed subscribers [MAILPOET-789] 2017-01-19 17:36:28 +03:00
a5ee865271 Merge pull request #790 from mailpoet/remove_all_lists_fix
Fix all lists removal when editing subscribers [MAILPOET-726]
2017-01-18 20:25:25 -05:00
59bda6cf6c Merge pull request #791 from mailpoet/first_last_names_fix
Fix MySQL strict mode error when saving a subscriber without first or…
2017-01-18 20:14:42 -05:00
a4d9d55b09 Fix code style [MAILPOET-780] 2017-01-18 19:37:16 +03:00
8cf918013d Fix MySQL strict mode error when saving a subscriber without first or last name [MAILPOET-780] 2017-01-18 19:06:33 +03:00
7789a10026 Fix code style [MAILPOET-726] 2017-01-18 15:47:16 +03:00
ce0ad33c32 Fix all lists removal when editing subscribers [MAILPOET-726] 2017-01-18 15:33:20 +03:00
63d1fe17a9 Merge pull request #788 from mailpoet/mysql_timeout_fix
Updates MySQL unit test condition
2017-01-17 21:30:57 +03:00
da92795635 Update tests and risky files removal in build.sh 2017-01-17 21:17:02 +03:00
915f8b5865 - Updates test condition 2017-01-17 13:03:02 -05:00
8ae939080b Bump up plugin version to 3.0.0-beta.13 2017-01-17 20:25:57 +03:00
610f74343c Merge pull request #787 from mailpoet/mysql_timeout_fix
Updates MySQL wait_timeout configuration logic [MAILPOET-786]
2017-01-17 20:21:05 +03:00
4de03db125 - Updates test condition 2017-01-17 11:59:22 -05:00
f734d47b26 - Extracts database configuration into a separate class
- Conditionally sets the session wait_timeout value
- Updates unit tests
2017-01-17 11:23:00 -05:00
9e879d0539 Merge pull request #786 from mailpoet/conflict_resolver_test_update
Fixes conflict resolver unit tests [MAILPOET-723]
2017-01-17 16:45:44 +03:00
ff6dffd626 Merge pull request #785 from mailpoet/form_css_fix
Fix Windows line breaks compatibility in unit test [MAILPOET-784]
2017-01-17 08:32:33 -05:00
efe187953c - Mocks a list of permitted assets 2017-01-17 08:30:51 -05:00
ab8a503a48 Fix Windows line breaks compatibility in unit test [MAILPOET-784] 2017-01-17 15:53:15 +03:00
81d91188ac Merge pull request #782 from mailpoet/conflict_resolution_implementation
Unloads all scripts/styles that are not loaded by default by WP in admin panel [MAILPOET-723]
2017-01-16 17:30:03 +02:00
d3353b793f Merge pull request #783 from mailpoet/mysql_timeout_fix
Increases MySQL timeout limit [MAILPOET-786]
2017-01-16 17:21:49 +03:00
625f828cce - Sets MySQL timeout to 60 seconds 2017-01-16 09:07:34 -05:00
c90dd94cf3 Merge pull request #781 from mailpoet/form_css_fix
Fixes some from CSS styles not being saved [MAILPOET-784]
2017-01-16 15:28:42 +02:00
a851527ff5 - Unloads all scripts/styles that are not loaded by default by WP in
admin panel
2017-01-15 15:35:48 -05:00
76e292f494 - Fixes test when premium unlocker is enabled 2017-01-13 18:03:25 -05:00
ed886280de - Rewrites the CSS styles processor/renderer class
- Adds unit tests
2017-01-13 13:16:57 -05:00
f3b2db48c4 - Add new dependency library used to parse CSS rules 2017-01-13 13:16:56 -05:00
b60c758281 Merge pull request #780 from mailpoet/conflict_resolution_implementation
Resolves client- and server-side conflicts with other plugins [MAILPOET-769] [MAILPOET-723]
2017-01-13 13:32:32 +02:00
b758284df7 - Fixes unit test 2017-01-12 17:49:28 -05:00
c6d43099a1 - Extracts check for current plugin page into a separate method 2017-01-12 17:48:42 -05:00
fde283dd56 Merge pull request #778 from mailpoet/settings_typo_fix
Corrects typo in subscription management shortcode [MAILPOET-783]
2017-01-12 22:22:35 +03:00
5800883416 - Updates action names 2017-01-11 21:18:37 -05:00
39a6318105 - Adds scipts/styles conflict resolver and executes it only on MailPoet
admin menu pages
- Adds unit tests
2017-01-11 20:52:03 -05:00
4196d35e35 - Adds new ConflictResolver class
- Executes URL query parameter conflict resolver action in Router class
- Adds unit tests
2017-01-11 20:52:03 -05:00
c0653ce26c - Corrects typo in subscription management shortcode 2017-01-11 13:58:50 -05:00
131f12d19e Update changelog and version for release 3.0.0-beta.12 2017-01-10 13:13:30 +02:00
3e734b5c44 Merge pull request #776 from mailpoet/js_conflict
Load MailPoet assets only on Widgets admin page [MAILPOET-740]
2017-01-09 15:38:52 -05:00
76a41d53d6 Remove unused dependencies from I18n and newsletter editor scripts 2017-01-09 22:35:40 +02:00
43cb03105b Change MailPoet JS assets to be loaded only on Admin Widgets page 2017-01-09 22:35:40 +02:00
3647f70daa Merge pull request #768 from mailpoet/date_display_fix
Updates date:dtext shortcode to display full day name [MAILPOET-772]
2017-01-09 19:36:27 +02:00
5956a200ea Merge pull request #770 from mailpoet/newsletter_preview_by_email_send_error_update
Fixes mailer error message not being displayed when sending newsletter preview [MAILPOET-773]
2017-01-09 18:07:52 +03:00
449eb28b2a - Updates code formatting 2017-01-09 09:37:56 -05:00
912fca0e73 Merge pull request #775 from mailpoet/emails_listing_performance_fix
Add queue_id index names [MAILPOET-746]
2017-01-09 09:11:11 -05:00
a3f2c32a6d - Adds custom date format as a shortcode action's argument
- Updates shortcodes logic to allow action arguments other than
"default"
2017-01-09 09:05:24 -05:00
e175e63a7c Merge pull request #771 from mailpoet/hooks_update
Updates hooks logic [MAILPOET-771]
2017-01-09 15:16:47 +02:00
bfe898aae8 Merge pull request #774 from mailpoet/cron_daemon_ping
New "ping" cron daemon router endpoint [MAILPOET-779]
2017-01-09 15:42:18 +03:00
099c2a390d Merge pull request #772 from mailpoet/ALC_update
Adds post ID data tag to ALC posts displayed as a list [MAILPOET-775]
2017-01-09 11:57:35 +03:00
8fe57ff57f Merge branch 'master' into emails_listing_performance_fix 2017-01-09 11:27:35 +03:00
6dc9f9d2ab Add queue_id index names [MAILPOET-746] 2017-01-09 11:14:38 +03:00
5463dd10e2 Merge pull request #769 from mailpoet/sender_email_header
Sets "sender" email header for SMTP/PHPMail methods [MAILPOET-774]
2017-01-09 11:02:46 +03:00
b8c56623a6 Update unit tests [MAILPOET-774] 2017-01-09 10:55:36 +03:00
a6b00e1ba7 - Adds new "ping" cron daemon router endpoint
- Removes the requirement to have data payload for router requests
2017-01-08 22:25:39 -05:00
aa0078e5e4 - Fixes CircleCI's Apache configuration. Error: "Client denied by server
configuration"
2017-01-08 21:58:28 -05:00
714f81d936 - Moves hooks setup to wp_load action
- Adds post notification scheduler to all post types
2017-01-08 17:27:02 -05:00
497c2fb595 - Introduces shortcode to custom format dates 2017-01-06 21:29:05 -05:00
c291fada74 - Adds post ID data tag when ALC is configured to display posts as a
list
2017-01-05 13:24:41 -05:00
e4166cecba - Updates date:dtext shortcode to display full day name 2017-01-04 13:06:29 -05:00
3a1568a31d - Fixes mailer error message not being displayed when newsletter preview
sending fails
2017-01-04 13:04:53 -05:00
02a5de0cd6 - Sets "sender" email header for SMTP/PHPMail methods 2017-01-04 10:22:17 -05:00
f5dce907ff Merge pull request #767 from mailpoet/2017_unit_tests
Fix hardcoded year in unit tests [MAILPOET-767]
2017-01-02 18:56:50 -05:00
2692c7c7dd Fix unit test using hardcoded year to work in 2017 2017-01-02 13:52:05 +02:00
4cfe3c534c Merge pull request #766 from mailpoet/emails_listing_performance_fix
Add indexes for even more speedy statistics retrieval [MAILPOET-746]
2016-12-31 14:22:15 -05:00
f8d78d87af Add indexes for even more speedy statistics retrieval [MAILPOET-746] 2016-12-31 22:19:51 +03:00
3b6e06eccb - Bumps up release version to 3.0.0-beta.11
- Updates changelog
2016-12-31 13:44:18 -05:00
09b2246186 Merge pull request #764 from mailpoet/emails_listing_performance_fix
Rewrite newsletter statistics query, remove redundant queue data from…
2016-12-31 13:34:22 -05:00
af83b02129 Merge pull request #765 from mailpoet/premium_plugin_unit_test
Fixes subscriber limit unit test when premium plugin is active
2016-12-31 19:33:14 +03:00
093fd2f082 Rename variables in unit test [MAILPOET-746] 2016-12-31 19:28:02 +03:00
c24d8135aa - Fixes subscriber limit unit test when premium plugin is active 2016-12-31 10:26:58 -05:00
41fdc3af13 Rewrite newsletter statistics query, remove redundant queue data from the server response [MAILPOET-746] 2016-12-31 13:14:10 +03:00
ec9417d293 Merge pull request #763 from mailpoet/logo_border_fix
Removes 1px border around logo in the welcome page
2016-12-30 20:24:36 +03:00
6eb78b5bf7 - Removes 1px border around logo on welcome/update pages that's introduced
by WP 4.7
2016-12-30 12:07:33 -05:00
877e110188 Merge pull request #762 from mailpoet/newsletter_preview_send_fix
Fixes newsletter send preview [MAILPOET-765]
2016-12-30 19:08:05 +03:00
e6d909da21 - Updates unit test 2016-12-30 10:59:37 -05:00
c26a3f704b Merge pull request #760 from mailpoet/rendering_fix
Fix ALC/regular posts being displayed without line breaks [MAILPOET-763]
2016-12-30 18:42:08 +03:00
9425e390c5 Merge pull request #761 from mailpoet/existing_subscriber_update
Update subscriber data on repeated subscriptions [MAILPOET-760]
2016-12-30 10:32:06 -05:00
698cdecbfe - Conditionally keeps margin/padding for ALC posts inside editor
- Adds line breaks for ALC posts in the renderer
2016-12-30 10:17:43 -05:00
d5a1d94bca Wipe unconfirmed subscriber data during import [MAILPOET-760] 2016-12-30 10:53:29 +03:00
4f37a44363 - Fixes newsletter preview not being sent
- Adds unit test
2016-12-29 18:46:22 -05:00
95f8f130ea Update subscriber data on repeated subscriptions [MAILPOET-760] 2016-12-29 15:29:32 +03:00
fb29800c7d - Replaces line breaks with empty paragraphs 2016-12-28 19:30:52 -05:00
d2b41a5b90 - Bumps up release version to 3.0.0-beta.10
- Updates changelog
2016-12-27 17:29:42 -05:00
71db3e569d Merge pull request #759 from mailpoet/deleted_lists_fix
Show deleted lists in newsletter listings [MAILPOET-489]
2016-12-27 11:26:59 -05:00
9a8f028a01 Fix code style [MAILPOET-489] 2016-12-27 19:16:18 +03:00
2c5e73305a Show deleted lists in newsletter listings [MAILPOET-489] 2016-12-27 13:13:05 +03:00
90e7026355 Merge pull request #739 from mailpoet/archives_shortcode_fix
Fixes archives shortcode and ability to manage subscription/unsubscribe [MAILPOET-737]
2016-12-27 09:39:15 +03:00
d63ab6a927 - Uses newsletter hash over id when looking for a newsletter 2016-12-26 19:42:00 -05:00
e5cf57e4f8 Merge pull request #756 from mailpoet/save_before_send_preview
Save newsletter before sending preview [MAILPOET-702]
2016-12-25 16:17:41 -05:00
6beada63de - Allows administrators to preview all newsletters
- Allows non-administrators to preview newsletters only when newsletter
hash is specified
2016-12-25 16:07:33 -05:00
6699b52184 Merge pull request #758 from mailpoet/return_path_implementation
Implements return path for SMTP/PHPMail/AmazonSES [MAILPOET-761]
2016-12-23 19:32:08 +03:00
c651a8bbe8 - Implements return path for SMTP/PHPMail/AmazonSES 2016-12-23 11:09:10 -05:00
4a171dca2d Merge pull request #757 from mailpoet/date_fix
Fixes date formatting [MAILPOET-759]
2016-12-23 15:20:10 +03:00
f821a60a2c - Removes open tracking code URL when newsletter is previewed 2016-12-22 22:58:43 -05:00
24a3866e2a Merge pull request #755 from mailpoet/svn_publish_improve
Improve SVN publish command [MAILPOET-758]
2016-12-22 21:14:34 -05:00
fc54f31d3d - Prevents viewing newsletters if subscriber does not exist and token
does not match
2016-12-22 21:13:21 -05:00
616883ed63 - Fixes date formatting 2016-12-22 15:29:00 -05:00
b6ce513927 Save newsletter before sending preview [MAILPOET-702] 2016-12-22 21:56:34 +03:00
456152b5cb Merge pull request #753 from mailpoet/bounced_option_on_subscription_page
Display 'bounced' option on subscription page only if the user is bounced…
2016-12-22 09:34:00 -05:00
0be790971a Merge pull request #754 from mailpoet/utf8_fix
Removes setting DB character set to utf8 [MAILPOET-757]
2016-12-22 10:27:03 +03:00
e255484bc8 Quote path in awk command for Windows compatibility [MAILPOET-758] 2016-12-22 10:16:15 +03:00
fc53aca31d Remove database dependency for SVN publish task [MAILPOET-758] 2016-12-22 10:04:28 +03:00
31116a7cf6 - Removes setting DB character set to utf8 2016-12-21 18:21:36 -05:00
ee0c824126 Add form select block unit test 2016-12-21 21:22:52 +03:00
9ee66160ec Display 'bounced' option on subscription page only if user is bounced and make it disabled [MAILPOET-754] 2016-12-21 21:04:28 +03:00
bc91b12cf3 Bump up release version to 3.0.0-beta.9 2016-12-20 19:39:15 +03:00
457c43cd77 Merge pull request #752 from mailpoet/mysql_fix
MySQL configuration fix [MAILPOET-755]
2016-12-20 19:14:52 +03:00
949d6033d7 - Fixes DB configuration being partially set 2016-12-20 10:14:04 -05:00
cad6391fc6 - Updates the format of db timezone offset to two-digit hours and minutes 2016-12-20 10:13:11 -05:00
e5e5e7b426 - Fixes preview of unsent post notifications 2016-12-19 19:19:51 -05:00
9095482af2 - Updates unit tests 2016-12-18 23:24:58 -05:00
9698cf2d2e - Optimizes ViewInBrowser router endpoint
- Optimizes ViewInBrowser class
- Optimizes and updates shortcode link category to use the refactored
  getViewInBrowserUrl() method
- Updates Shortcodes to use the refactored getViewInBrowserUrl() method
2016-12-18 23:24:57 -05:00
707afc2ae0 - Adds a new method to create a URL data object as a numeric array instead
of associative, thus reducing the size of the object
- Adds a new method to convert numeric URL data object array into associative array
- Preserves backward compatibility with previous MP3 Beta versions by checking if the
  URL data object is already an associative array
- Adds different types of newsletter display
2016-12-18 23:24:50 -05:00
3b795a3e58 - Prevents deleted newsletters from showing up in archives
- Adds a relationship to the sending queue table
- Resets hash on newsletter duplication and notification history creation
- Updates hash generation to use random string instead of newsletter id
2016-12-18 23:08:08 -05:00
062f849fc8 - Isolates shortcodes regex into a class method
- Adds a new method to create a URL data object as a numeric array instead
  of associative, thus reducing the size of the object
- Adds a new method to convert numeric URL data object array into associative
  array
- Preserves backward compatibility with previous MP3 Beta versions
  by checking if the URL data object is already an associative array
2016-12-18 23:08:08 -05:00
98c6c29716 - Limits the length of subscriber token to allow for smaller URL data
objects
2016-12-18 23:08:07 -05:00
b4da3ecfb3 - Updates post processing filter naming convention
- Allows returning of text or html rendered body from the renderer
2016-12-18 23:08:07 -05:00
709f45941a - Allows returning of text or html rendered body from the sending queue
model
2016-12-18 23:08:07 -05:00
9ac4c3de72 - Adds new "hash" column to the newsletters table
- Updates newsletter model to automatically generate hash when saving
  newsletter
- Adds new getByHash method to the newsletter model
2016-12-18 23:08:07 -05:00
eee22227b3 - Removes unused class import
- Fixes newsletter URL generation in archive shortcode
- Disables generation of subscription management/unsubscribe/view in
  browser shortcodes when newsletter is previewed
2016-12-18 23:08:07 -05:00
edcce542c3 Merge pull request #747 from mailpoet/svn_push_command
Add a command to push new release to WP SVN [MAILPOET-673]
2016-12-16 14:50:37 +02:00
a354a380ba Merge pull request #749 from mailpoet/change_dup_import_msg
Change no subscribers added/updated string [MAILPOET-741]
2016-12-16 07:46:49 -05:00
54eb667654 Merge pull request #751 from mailpoet/makepot
Makepot task fix [MAILPOET-742]
2016-12-16 15:24:58 +03:00
10207112bc Fix regex matching __() function 2016-12-16 12:23:06 +02:00
892eea238f Merge pull request #750 from mailpoet/fix_bounce_api_response_code
Change bounce API OK response code from 201 to 200 [MAILPOET-747]
2016-12-15 17:24:09 -05:00
e6bb1666ee Remove obsolete wysija-newsletters gettext domain 2016-12-15 20:24:04 +02:00
2be9985d20 Fix finding __() and _n() i18n function calls 2016-12-15 20:24:04 +02:00
f4b7acca1e Fix parsing function call arguments when arg strings contain commas 2016-12-15 20:24:04 +02:00
de9d3655f0 Change bounce API OK response code from 201 to 200 [MAILPOET-747] 2016-12-15 19:49:39 +03:00
dfa13726e7 Add force mode to svn:publish command, add svn:checkout command 2016-12-15 16:20:12 +03:00
61ab583030 Merge pull request #748 from mailpoet/bump_wp_tested_to_4.7
Bump 'Tested up to' and 'Requires at least' versions [MAILPOET-744]
2016-12-15 12:20:19 +02:00
6954501915 Change no subscribers added/updated string [MAILPOET-741] 2016-12-15 12:02:06 +03:00
45a8103322 Bump 'Tested up to' and 'Requires at least' versions [MAILPOET-744] 2016-12-15 11:52:21 +03:00
c4896f4662 Merge pull request #746 from mailpoet/ALC_title_alignment
Fixes alignment not working for ALC titles [MAILPOET-734]
2016-12-15 10:59:23 +03:00
71711b4a0d Add a command to push new release to WP SVN 2016-12-14 18:24:41 +03:00
2634b606f6 - Fixes ALC transformer class to append style tags with semicolon 2016-12-13 19:32:50 -05:00
0aa48b9121 Bump up release version to 3.0.0-beta.8 2016-12-13 14:28:36 +02:00
1157cc8b9a Merge pull request #741 from mailpoet/ci_email_tests
Enables email sending tests in CI [MAILPOET-681]
2016-12-13 14:53:47 +03:00
88599963e0 Merge pull request #743 from mailpoet/vendor_conflict
Add dependency checking requirement [MAILPOET-690]
2016-12-12 15:24:56 -05:00
57706dc1b3 Merge pull request #745 from mailpoet/premium_plugin
Add action to notify 3rd party plugins that MP is initialized
2016-12-12 15:59:28 +02:00
694402e9f2 Merge pull request #744 from mailpoet/changelog_from_readme_on_update_page
Display changelog from readme.txt on Update page [MAILPOET-708]
2016-12-12 14:39:24 +02:00
891239bf4e Check readme file is readable before trying to parse it 2016-12-12 15:31:10 +03:00
232494e1a2 added 'mailpoet_initialized' action so that 3rd party plugin can check if mp is loaded 2016-12-12 11:28:38 +01:00
4ae55230da Display changelog from readme.txt on Update page [MAILPOET-708] 2016-12-12 10:04:36 +03:00
eda4a9edcc Fix regex to work on windows and match only mailpoet folder as valid 2016-12-09 23:20:48 +02:00
5fb699fd5b Remove trailing slash to support searches in Windows 2016-12-09 23:07:55 +02:00
7c5e0212ad Fix calling a method on an undefined variable 2016-12-09 22:44:43 +02:00
44a77e097b Escaped path when used in regex pattern 2016-12-09 22:41:44 +02:00
22fd9e31f7 Fix variable name typo 2016-12-09 18:12:22 +02:00
bbe3d48ec1 Add dependency checking to prevent conflicts with other plugins
MAILPOET-690
2016-12-09 18:05:19 +02:00
449978d7c1 Merge pull request #742 from mailpoet/mysql_group_fix
fix sql errors with mysql 5.6 & ONLY_FULL_GROUP_BY mode [MAILPOET-739]
2016-12-09 09:14:22 -05:00
0535e1eaeb Merge pull request #737 from mailpoet/sending_service_bounce_sync
Add bounce synchronization with MailPoet Sending Service [MAILPOET-696]
2016-12-08 21:47:55 -05:00
4dfe4e4997 fix sql errors with mysql 5.6 & ONLY_FULL_GROUP_BY mode 2016-12-08 18:38:03 +01:00
33a184fc4a Store emails sent during tests in test reports as an artifact 2016-12-08 18:19:50 +02:00
19b34ed838 Add a fake sendmail mailer to enable sending tests in CI 2016-12-08 17:57:21 +02:00
ca17e0c4da Merge pull request #740 from mailpoet/blockquote_rendering_fix
Fixes rendering of non-paragraph elements inside blockquote [MAILPOET-736]
2016-12-08 13:07:57 +02:00
347e491865 Merge pull request #738 from mailpoet/asset_cache_breaker
Add cache breaker query string to plugin static asset URLs [MAILPOET-713]
2016-12-08 10:51:02 +01:00
59b6877675 - Fixes non-paragraph elements inside blockquotes note being rendered
- Updates blockquote table width to 100% and allows text alignment
- Updates unit tests
2016-12-07 20:50:07 -05:00
6728203672 Add cache breaker query string to plugin static asset URLs
MAILPOET-713
2016-12-07 16:22:53 +02:00
058ba53622 Bump up release version 2016-12-07 12:26:29 +02:00
8a1450d7d6 Add Mock API class to unit tests 2016-12-07 10:51:38 +03:00
49f2b147be Add fixes for MySQL strict mode 2016-12-07 10:31:38 +03:00
8f3b2e6c0b Fix code style 2016-12-06 23:06:45 +03:00
baf0d374ae Add bounce synchronization with MailPoet Sending Service [MAILPOET-696] 2016-12-06 22:48:36 +03:00
465665271d Merge pull request #736 from mailpoet/post_notification_history_fix
Fixes post notification history listing [MAILPOET-729]
2016-12-06 12:59:54 +01:00
663f39d749 Merge pull request #735 from mailpoet/alc_boolean_fix
Fix displaying dividers in ALC blocks MAILPOET-721
2016-12-05 22:37:42 -05:00
62349900b9 - Fixes post notification listing not displaying because of
undefined value passed to the `renderQueueStatus` method
2016-12-05 22:02:01 -05:00
9ccf2a9294 Merge pull request #733 from mailpoet/newsletter_preview_send_fix
Render subscriber shortcodes when sending a newsletter preview [MAILPOET-725]
2016-12-05 21:02:38 +03:00
b2f662c1d5 Fix displaying dividers in ALC blocks MAILPOET-721 2016-12-05 19:45:46 +02:00
43b23994a9 - Updates function arguments 2016-12-05 12:15:24 -05:00
9708019ab6 - Returns false when subscriber is defined but not an object
- Updates unit tests
2016-12-05 11:48:20 -05:00
8819d9154a Merge pull request #734 from mailpoet/db_update_check
handle db update [MAILPOET-720]
2016-12-05 18:27:29 +02:00
5e23aacdca Merge pull request #730 from mailpoet/sending_queue_worker_update
Stop sending when newsletter is trashed [MAILPOET-716]
2016-12-05 17:27:42 +02:00
398109dcf7 - Runs mailer and cron execution limit checks at the same and in 3
locations: before processing, after each send operations and after queue
  processing
- Fixes an issue with sending continuing when newsletter is trashed
- Updates unit tests
2016-12-05 09:37:18 -05:00
b7c1594cf6 Merge pull request #732 from mailpoet/import_export_select2_fix
Import/export dependency injection of Select2 [MAILPOET-723]
2016-12-05 16:25:29 +02:00
3d24f0c77b handle db update 2016-12-05 13:14:12 +01:00
13001008c4 Merge pull request #731 from mailpoet/sending_restart_update
Prevents sent newsletters from being paused/updates error messages [MAILPOET-718] [MAILPOET-719]
2016-12-05 13:54:34 +03:00
4b8caccb46 - Fixes subscriber shortcodes not being rendered when sending a preview
newsletter
2016-12-04 19:48:25 -05:00
04ae6efaf6 - Updates connection/mailer error messages 2016-12-04 17:22:20 -05:00
98812834f6 - Uses dependency injection for Select2 library 2016-12-03 19:18:17 -05:00
732ea59e34 Merge pull request #727 from mailpoet/import_step2_subs_count_fix
Fix import step 2 list selection box tallying unconfirmed subscribers… [MAILPOET-709]
2016-12-02 11:20:18 -05:00
9b9e31fcc8 - Prevents sent newsletters' status from changing to "paused" when
sending error is displayed
2016-12-02 10:39:29 -05:00
9b44becc7d Merge pull request #729 from mailpoet/mailer_endpoint_update
Fixes mailer's error message not being displayed in Settngs [MAILPOET-715]
2016-12-01 10:49:36 +03:00
82e153a2e8 - Fixes mailer's error message not being displayed 2016-11-30 13:31:02 -05:00
dc981b23e4 Merge pull request #728 from mailpoet/mailer_tests_update
Updates mailer methods unit tests [MAILPOET-714]
2016-11-30 21:28:45 +03:00
eb3f872dc6 - Updates mailer unit test 2016-11-30 12:39:27 -05:00
3f9b41f042 Merge pull request #725 from mailpoet/import_fix
Fixes subscribers not being added to list(s) upon import [MAILPOET-712]
2016-11-30 19:15:59 +03:00
9e4762cbd7 - Updates mailer methods unit tests 2016-11-30 10:59:34 -05:00
249824b83c - Updates unit test 2016-11-30 10:54:07 -05:00
0b89a6d2ff Merge pull request #726 from mailpoet/cron_blocking_requests
Fixes Cron on hosts that don't support non-blocking HTTP requests [MAILPOET-692]
2016-11-30 14:17:13 +02:00
b074b01b9f Fix import step 2 list selection box tallying unconfirmed subscribers (item B from #476)
Segments::getSegmentsForImport() was aliased to Segments::getSegmentsWithSubscriberCount()
2016-11-30 12:21:08 +03:00
9a0bb52860 - Fixes subscribers not being added to list(s) upon import 2016-11-29 15:28:56 -05:00
bf36deccb2 - Enables blocking requests for Cron and fixes an issue on hosts that
don't support non-blocking requests
2016-11-29 15:03:51 -05:00
f77e24105d Merge pull request #709 from mailpoet/sending_restart
Sending retry/pause/restart [MAILPOET-653]
2016-11-29 13:51:53 +01:00
f90ba712ee Bump up release version to 3.0.0-beta.6 2016-11-29 14:18:40 +02:00
c658778476 Merge pull request #723 from mailpoet/bounced_subscribers
Add 'Bounced' status to subscribers [MAILPOET-684]
2016-11-29 12:47:41 +02:00
c221e52cc4 Remove a temp file [MAILPOET-684] 2016-11-29 13:39:11 +03:00
556803af5d Merge pull request #724 from mailpoet/scheduler_and_queue_priority_update
Scheduler and queue priority update [MAILPOET-706] [MAILPOET-707]
2016-11-29 13:12:52 +03:00
5bc17f5e76 - Saves welcome emails with high priority
- Fixes welcome emails not being sent to WP users
- Updates unit tests
2016-11-28 18:49:35 -05:00
fe537a0445 - Adds a missing class import 2016-11-28 12:20:22 -05:00
08ec4e83c8 - Adds method to clear previous errors
- Updates unit tests
- Rebases master
2016-11-28 12:20:13 -05:00
e72a8efbd4 - Sorts queues to process according to their priority in ascending manner 2016-11-28 12:04:21 -05:00
c49d96d63a - Adds piority constants
- Sets medmium priority as default when none is specified
2016-11-28 12:03:09 -05:00
36b935b9ae Add 'Bounced' status to subscribers [MAILPOET-684]
Fix SubscriberTest->testItHasGroupFilter() making only one of four assertions due to lack of data.
Fix a small issue with Import. Unexpected values for the status field were converted to 'unconfirmed' rather than 'subscribed' due to non-strict comparison in in_array(). This hindered 'bounced' status import as well.
2016-11-28 19:37:47 +03:00
f1985f7e81 refresh listing after resuming mailer sending 2016-11-28 09:50:32 -05:00
8c14df6c1f - Rebases master and updates method names 2016-11-28 09:50:32 -05:00
181c0cab36 - Displays notice only when sending has been paused 2016-11-28 09:50:32 -05:00
2a04c3c054 refactored mailer mixin - removed notices.jsx 2016-11-28 09:50:32 -05:00
80efc3c12d Added callback afterGetItems on Listings
Updated MP Notice to allow reuse of notices (by id)
Updated newsletters endpoint's listing method to include mta_log & mta_method in response
Updated all newsletter listings in order to dynamically display mailer error
2016-11-28 09:50:32 -05:00
8b96806b11 - Updates variable names 2016-11-28 09:50:32 -05:00
a2f7fbac33 - Checks window parameters
- Defines constants in main components and passes them to
  subcomponents/mixins
2016-11-28 09:50:32 -05:00
981cb91a13 - Adds space 2016-11-28 09:50:32 -05:00
89545ba104 - Adds unit tests 2016-11-28 09:50:32 -05:00
709b76d01e - Updates/adds translations 2016-11-28 09:50:32 -05:00
da2d6dd405 - Updates newsletter listings components to render notices 2016-11-28 09:50:32 -05:00
28f5375609 - Adds new component to display notices in newsletter listings
- Displays sending error notice if sending has been globally paused
2016-11-28 09:50:32 -05:00
37a259f73b - Displays "paused" status for all newsletters if sending is paused
globally
- Adds new mixin to globally restart sending
2016-11-28 09:50:32 -05:00
cdb3b94cbd - Updates mailer endpoint to handle sending restart 2016-11-28 09:50:32 -05:00
72f696e834 - Removes unused logic to deal with "failed" subscribers
- Updates sending queue worker to handle new mailer response format
2016-11-28 09:50:32 -05:00
57dff5ff00 - Corrects code comments
- Resets mailer log on each run
2016-11-28 09:50:32 -05:00
90a0061233 - Updates mailer log to record error messages, track retry attempts and
pause sending
2016-11-28 09:50:32 -05:00
2955b6d5a0 - Clarifies const values 2016-11-28 09:50:32 -05:00
1d03482463 - Updates API endpoint with to handle the new mailer response format 2016-11-28 09:50:32 -05:00
d1def923f8 - Enables error response in newsletter preview if sending fails 2016-11-28 09:50:32 -05:00
8a278360f4 - Adds methods to format mailer send/connection succes & error results
- Updates all mailing methods to return true on success and error message
  on failure
2016-11-28 09:50:32 -05:00
5d12de8ec0 - Removes unused mailing methods 2016-11-28 09:47:07 -05:00
daa36c833f Merge pull request #722 from mailpoet/mailer_sender_and_subscriber_unicode_support
Fix for unicode characters in to/reply-to/from fields [MAILPOET-705]
2016-11-28 16:02:02 +02:00
a9e02f745f - Encodes non-ASCII from/reply-to/to addresses as per RFC 2047 2016-11-28 08:56:14 -05:00
a04f5a2d25 Merge pull request #717 from mailpoet/import_fix
Fixes import of duplicate subscribers and whose column data is incomplete [MAILPOET-694]
2016-11-28 15:05:35 +02:00
71fbc1a7b0 - Simplifies code that prepares subscriber custom field data for
creation/update
- Updates tests
2016-11-27 20:53:20 -05:00
677060491d - Fixes an issue with unicode characters not rendering in from/reply-to/to
fields.
2016-11-25 15:34:55 -05:00
03fec11947 Merge pull request #720 from mailpoet/renderer_update
Newsletter text version rendering warning [MAILPOET-704]
2016-11-25 16:26:02 +02:00
a0817a1e97 Merge pull request #721 from mailpoet/amazon_ses_fix
Amazon SES sending fix [MAILPOET-698]
2016-11-25 16:00:49 +02:00
1926b7ba29 - urlencodes POST data and fixes the "unable to determine service/operation
name to be authorized" error
2016-11-24 17:20:54 -05:00
aec6d241e8 - Highlights chosen SES region in settings 2016-11-24 13:10:32 -05:00
75602be304 - Converts special chars to HTML entities in subject
- Silences warnings from HTML->text renderer
2016-11-24 11:15:06 -05:00
299c922cef Merge pull request #719 from mailpoet/exporttest_windows_fix
Escape paths for regexes in ExportTest->testItCanConstruct() to make …
2016-11-24 09:01:26 -05:00
29673d0799 Escape paths for regexes in ExportTest->testItCanConstruct() to make it pass on Windows 2016-11-24 16:23:11 +03:00
7c236e6209 Merge pull request #718 from mailpoet/sending_worker_execution_enforcement
Enforces worker execution limit between each send operation [MAILPOET-697]
2016-11-24 12:22:04 +02:00
8e438e1819 - Enforces worker execution limit between each send operation 2016-11-23 12:02:48 -05:00
0c8cc27ea2 - Updates MailChimp API key regex 2016-11-22 12:44:58 -05:00
6f49201393 - Extends save() method to convert emails to lowercase format 2016-11-22 12:13:13 -05:00
7bf9e8b06e - Removes unused method 2016-11-22 12:12:51 -05:00
96eaafe012 Bump up release version to 3.0.0-beta.5 2016-11-22 14:21:16 +02:00
9a82e718ce Merge pull request #715 from mailpoet/queue_delete_update
Sending queue deletes parent newsletter [MAILPOET-683]
2016-11-22 13:49:08 +02:00
f9e4f3f584 Merge pull request #716 from mailpoet/autoload_fix
Checks for existence of autoload.php [MAILPOET-693]
2016-11-22 12:17:25 +02:00
d8b1be9ccc - Deletes related custom fields when deleting subscriber
- Updates unit tests
2016-11-21 22:38:43 -05:00
7c61fa2c81 - Fixes an issue where a subscriber with the same email but different case
variant is not considered unique
- Fixes an issue where an object of existing subscribers would not have
  the same number of data in each child array due to null values being
  removed
- Updates unit tests
2016-11-21 21:53:43 -05:00
0af99c771e - Fixes 'get_userdata() function not found' error
- Tidies up format
2016-11-21 20:26:08 -05:00
c5488571be - Removes unused class imports 2016-11-21 20:25:23 -05:00
e0aeeb29d9 - Deletes post notification history record when no posts are found and
when sending queue record is deleted
- Reverts back changes to the model's delete() method
- Updates unit tests
2016-11-21 19:27:08 -05:00
d5a9b84ca3 - Updates "tested up to" WP version
- Includes a check for missing autoloader and displays an error notice
2016-11-21 18:54:04 -05:00
fd417d8d95 Merge pull request #712 from mailpoet/access_to_temp_folder
Restricts access to plugin's temp/cache folder [MAILPOET-643]
2016-11-21 20:10:39 +02:00
0291c3a9a0 - Updates models' delete() method to delete parent newsletter
- Updates unit tests
2016-11-20 12:31:04 -05:00
fd6e6de547 Merge pull request #714 from mailpoet/ui_fixes
Admin UI fixes
2016-11-20 12:19:12 -05:00
bf54eeb345 - Updates error messages and links to KB articles
- Adds polyfills for mb_string functions
- Aborts initialization if PDO extension is not found (critical
  requirement)
2016-11-20 12:14:27 -05:00
697afcbeba Add wysija to the list of contributors in readme.txt 2016-11-18 14:00:22 +02:00
5773fa7994 Losslessly optimize image assets with kraken.io MAILPOET-669 2016-11-18 13:48:52 +02:00
b59785c4b6 Updated KB link text in MailChimp import MAILPOET-677 2016-11-18 13:09:20 +02:00
fbf9f6f902 - Removed "beta" in superscript on welcome and update pages;
- Added "Get back to MailPoet" button on update page;
MAILPOET-678
2016-11-18 13:06:22 +02:00
adc232fc3f Prevent MailPoet Page post type from showing up in menu MAILPOET-674 2016-11-18 12:56:06 +02:00
e3c1ff6c8c Merge pull request #713 from mailpoet/editor_fixes
ALC block tool fixes [MAILPOET-676]
2016-11-18 11:39:53 +01:00
77edd93965 - Prevent tools of ALC inner blocks from showing on hover MAILPOET-676;
- Fix overlay of ALC blocks to appear even if mouse hovers over its
  block tools;
2016-11-17 15:59:51 +02:00
7d15c391ea - Adds new Requirements Checker class
- Updates Initializer to check requirements
2016-11-16 21:46:21 -05:00
8fb29e2418 - Moves Env class's error handling to the Initializer class 2016-11-15 12:13:01 -05:00
b348c350c0 - Adds expection handle to the main mailpoet script
- Throws exception when a temporary/cache folder can't be created
2016-11-15 11:41:09 -05:00
fbeddb8af2 Bump up release version to 3.0.0-beta.4 2016-11-15 12:45:51 +02:00
54f6ab0c79 - Abstracts path creation logic
- Adds blank index.php to cache and temp folders
- Updates unit tests
- Extracts cache folder location from Renderer to Env class
- Implements #643
2016-11-14 21:03:26 -05:00
8c3525589c Merge pull request #708 from mailpoet/editor_shortcodes
Fix URLs containing shortcodes in TinyMCE [MAILPOET-670]
2016-11-14 18:09:16 -05:00
58f97ea43d Merge pull request #711 from mailpoet/issue_645
[MAILPOET-645] Protect some fields from being specified when subscribing
2016-11-14 18:39:27 +02:00
8e4c3ea7ea Merge pull request #710 from mailpoet/subscriber_limit_fix
Fixes total subscriber count [MAILPOET-671]
2016-11-14 17:43:46 +02:00
3865a8e8cd protect some fields from being edit when subscribing 2016-11-14 15:20:18 +01:00
02221f6833 Merge pull request #707 from mailpoet/template_cache
Gracefully display Twig exceptions as error messages [MAILPOET-667]
2016-11-14 10:07:58 +01:00
b63ef8cca0 - Updates total subscriber count to exclude trashed records
- Updates unit test
2016-11-12 19:33:46 -05:00
aabe71d473 - Change TinyMCE to not convert URLs containing shortcodes;
- Refactor TinyMCE calls into reusable Behavior;
MAILPOET-670
2016-11-11 15:30:09 +02:00
1405249712 Merge pull request #706 from mailpoet/issue_644
MAILPOET-644
2016-11-10 12:47:03 -05:00
16ee5e934a Fix typo in property name 2016-11-10 19:17:23 +02:00
74276b45c5 use verifyToken instead of generateToken 2016-11-10 17:50:38 +01:00
b046c9ea4b Gracefully catches Twig exceptions and displays error messages
MAILPOET-667 #time 3h
2016-11-10 16:33:50 +02:00
8bd7f5f169 added token verification when updating subscription 2016-11-10 12:21:20 +01:00
ee119215c0 Merge pull request #705 from mailpoet/issue_646
Mass subscriptions protection + EU laws compliance
2016-11-09 12:54:02 +02:00
c22d3c8957 Renamed 'ip' column to 'subscribed_ip'
- updated code based on PR review
2016-11-09 11:43:08 +01:00
0dd7a3990f Merge pull request #703 from mailpoet/hs_beacon
HelpScout Beacon update
2016-11-08 12:54:06 -05:00
1a6b032943 Added subscription limit in order to avoid mass subscriptions 2016-11-08 17:29:28 +01:00
1220f47d87 Clear vendor files in build before reinstalling production deps 2016-11-08 12:28:55 +02:00
583b34a5c1 Bump up release version to 3.0.0-beta.3 2016-11-08 11:56:18 +02:00
b36d13a087 Merge pull request #699 from mailpoet/php53-fix
Fixes various errors on PHP 5.3.x
2016-11-07 16:48:18 +01:00
1a3aa7a4e4 Merge pull request #701 from mailpoet/rendering_update
Rendering update
2016-11-07 16:27:48 +01:00
70a13a4774 Update helpscout beacon code to include support KB article search 2016-11-07 17:27:28 +02:00
6ce13df2f3 Merge pull request #696 from mailpoet/beacon_report
HS Beacon enhanced report
2016-11-07 15:59:06 +02:00
4eb85c5d7e Merge pull request #697 from mailpoet/php7_compatibility_update
PHP 7.0 compatibility update
2016-11-07 15:40:48 +02:00
6eb6636e8b Merge pull request #694 from mailpoet/newsletter_number_shortcode_fix
Newsletter number shortcode fix
2016-11-07 14:03:01 +02:00
9635fb5365 - Replaces &nbsp; with spaces in all templates 2016-11-06 20:06:26 -05:00
d4b39cb1f4 - Replaces &nbsp with spaces in text blocks 2016-11-06 20:04:18 -05:00
af36e7a0d9 - Converts template to UTF-8 2016-11-06 20:03:21 -05:00
1db8626e35 - Fixes 'Cannot access self:: when no class scope is active' error in PHP 5.3 2016-11-06 18:55:20 -05:00
61c255564f - Fixes 'Using $this when not in object context' error in PHP 5.3 2016-11-06 18:55:12 -05:00
7e5047d98f - Sets default timezone for CI's PHP configuration
- Prevents PHP Compatibility sniffer from throwing a "default timeezone is
  required" error
2016-11-05 19:54:56 -04:00
4698d5a4db - Indirectly invokes hash_equals() functions. This prevents PHP Compatibility sniffer
from complains about the function not present in <5.6. WP provides a shim for older
  PHP versions in wp-includes/compat.php
2016-11-05 19:54:55 -04:00
864c9cbe95 - Updates code sniffer rules to run PHP Compatibility sniff 2016-11-05 19:54:54 -04:00
011b6f9b3c - Adds PHP Compatibility sniffer dependency
- Updates build script to ignore running post-update|install commands
2016-11-05 19:54:53 -04:00
e45fc0c0a0 - Renames functions that start with underscores (i.e., names reserved by PHP)
- Removes the unused date_format function
2016-11-05 19:54:46 -04:00
6bebdd6e95 - Removes unused PHPMailer dependency 2016-11-05 11:27:58 -04:00
8df4da768a Merge pull request #695 from mailpoet/plugin_activation
Fix Populator in plugin activation
2016-11-04 17:56:59 +01:00
67f4c21aa8 Fix coding standard issue - extra space after foreach 2016-11-04 17:00:10 +02:00
5eba0e2731 Fix referencing $this in anonymous function context 2016-11-04 17:00:10 +02:00
3efa429a1b - Updates newsletters listing to display rendered subject for post
notification history emails
2016-11-04 09:51:50 -04:00
3a78441a83 Merge pull request #691 from mailpoet/editor_fixes
Fitting text in template selection boxes
2016-11-04 09:38:28 -04:00
c05be7d987 remove useless comment (containing a typo on top of that...) 2016-11-04 14:14:48 +01:00
b8cb1da777 added custom information to HS Beacon 2016-11-04 14:11:37 +01:00
ac8d1d808f Merge pull request #689 from mailpoet/index_files
Adds folder index files
2016-11-04 11:21:03 +01:00
9cd7b1a204 - Updates unit tests
- Addresses #628 (3)
2016-11-03 20:56:25 -04:00
0d32c09df3 - Replaces model arrays with model objects 2016-11-03 20:45:53 -04:00
9f288ae11a - Removes unused classes
- Fixes [newsletter:number] shortcode not working
2016-11-03 20:38:20 -04:00
e87ccd6b92 - Corrects/updates code comments 2016-11-03 18:11:00 -04:00
8a2b6ac69b Merge pull request #690 from mailpoet/obsolete_dependencies
Remove obsolete JS dependencies
2016-11-03 17:57:56 +01:00
43bd2d4413 Fixes template selection boxes to fit text in different configurations 2016-11-03 18:17:45 +02:00
9fdb99a06b Merge pull request #688 from mailpoet/editor_xss
Reflected XSS in newsletter editor
2016-11-03 16:56:25 +01:00
f3c69c8353 Remove obsolete JS dependencies 2016-11-03 14:29:40 +02:00
29a32d3da9 Enumerate build.sh steps to improve visibility for any issues 2016-11-03 14:12:49 +02:00
8412cc852d Add index files during build to ensure dirs aren't browsable #650 2016-11-03 14:12:12 +02:00
b4e4320508 Fix newsletter editor XSS #638 2016-11-03 13:20:22 +02:00
dbd6e6f310 Remove obsolete JS libraries: d3, c3, swag, xss 2016-11-02 17:12:51 +02:00
bdcb7f0e58 Merge pull request #687 from mailpoet/issue_681_670
fixed HTML export of subscription form + updated docs url in settings
2016-11-02 16:15:07 +02:00
85c9b121f5 Merge pull request #678 from mailpoet/ci_improvements
CI improvements [MAILPOET-618]
2016-11-02 08:46:04 -04:00
069bc95297 fixed HTML export of subscription form + updated docs url in settings 2016-11-02 13:24:55 +01:00
0b711e6341 Add running QA scripts in CI, disable checking for useless overrides 2016-11-02 13:10:23 +02:00
2a961cca01 Eliminate an extra level of indentation 2016-11-02 13:10:23 +02:00
e855fdbbaf Fix composer installation for CI 2016-11-02 13:10:23 +02:00
288464e8cb Change Robo tasks to return error exit codes when they fail 2016-11-02 13:10:23 +02:00
1331ed70f1 Remove phpseclib dependency, which is no longer needed 2016-11-02 13:10:23 +02:00
411188c345 Remove PopulatorData from coverage reports as it's irrelevant 2016-11-02 13:03:15 +02:00
ee275532b1 Merge pull request #679 from mailpoet/secissue_640
XSS in listing sort by
2016-11-02 12:48:40 +02:00
b2eef93516 Merge pull request #685 from mailpoet/issue_489
fixed NaN in sending stats, show 'no subscribers' instead
2016-11-02 12:23:31 +02:00
40ca54c447 sort by defaults to 'id' if invalid 2016-11-02 11:17:27 +01:00
b65db1afbf Merge pull request #684 from mailpoet/issue_639
removed risky file from css-tidy vendor when building
2016-11-02 12:11:29 +02:00
c258b1c3a2 Merge pull request #680 from mailpoet/css_inliner_update
Fixes PHP 7 compatibility issue with CSS  inliner
2016-11-02 11:43:46 +02:00
7a5a726400 removed risky file from css-tidy vendor when building 2016-11-02 10:30:57 +01:00
e553922eca Update composer.lock and remove leftover comment 2016-11-02 11:30:52 +02:00
04e9e8a45d fixed NaN in sending stats, show 'no subscribers' instead 2016-11-02 10:21:02 +01:00
f037e1271d - Removes php-simple-html-dom-parser dependency
- Updates CSS inliner to use pQuery DOM parser
2016-10-31 19:01:48 -04:00
f4563e18cd use filter_var instead of regex 2016-10-31 17:36:53 +01:00
feaac5eb54 constrain sort_by to alphanumeric/underscore in order to avoid xss in error notices 2016-10-31 17:36:53 +01:00
a6059d5bc3 Update to 3.0.0-beta.2 release 2016-10-31 12:45:03 +02:00
f2104ef30f Merge pull request #677 from mailpoet/plugin_description
Updated plugin description
2016-10-31 12:31:43 +02:00
e7f760328e updated plugin description 2016-10-31 11:15:36 +01:00
c09bcd51ad Merge pull request #675 from mailpoet/amazon_ses_fix
Fixes const value declaration for PHP <5.6
2016-10-28 17:29:57 +03:00
01af4d3401 - Fixes const value declaration for PHP <5.6 2016-10-28 10:13:56 -04:00
2ba9d95a2e Update plugin repo icon to "beta" 2016-10-28 16:03:14 +03:00
b2d4bfc760 Initial MailPoet 3.0.0-beta.1 release 2016-10-28 13:52:40 +03:00
57f5f16bb6 Merge pull request #674 from mailpoet/premium_hook
Bypasses subscriber count enforcement for premium users
2016-10-27 20:47:14 +03:00
7d2e13b9a3 - Updates license check logic
- Updates subscriber limit check logic
- Updates unit tests
- Updates Menu's check for subscriber limit
2016-10-27 12:35:57 -04:00
6d39f9fa78 Merge pull request #671 from mailpoet/plugin_repository_assets
Preparation for plugin repository
2016-10-27 11:36:57 -04:00
a4395f2350 - Adds unit tests 2016-10-27 11:16:30 -04:00
411969b3eb - Adds check for premium plugin status
- Bypasses subscriber count enforcement if premium is enabled
2016-10-27 10:20:05 -04:00
1868ca3155 Merge pull request #673 from mailpoet/scheduler_update
Scheduler update
2016-10-27 13:17:03 +03:00
e765471f5d - Changes month days count to start from 1 instead of 0
- Closes #672
2016-10-26 21:18:07 -04:00
bdce7c5e5a - Remove unused dependency 2016-10-26 11:43:32 -04:00
773be9f5c8 Add assets for plugin repository 2016-10-26 13:59:02 +03:00
6ae46b05e5 Merge pull request #669 from mailpoet/string_updates
String updates
2016-10-25 18:00:44 +03:00
217894745d - Updates text strings
- Closes #655
2016-10-25 10:21:23 -04:00
a03891895c Bump up release version to 0.0.50 and update changelog 2016-10-25 13:04:55 +03:00
3368e84a99 Merge pull request #668 from mailpoet/export_confirmed_subscribers_option_update
Fixes minor export UI issues
2016-10-25 12:46:13 +03:00
e90df2f08d - Fixes Select2 not dislaying multiple options in the list of export
fields
- Sets default "export confirmed subscriber" option to "no"
2016-10-24 13:09:48 -04:00
2391ae1cad Merge pull request #665 from mailpoet/post_notification_fix
Fixes post notification issues
2016-10-24 16:02:19 +03:00
83114a8be4 - Removes unused class declarations 2016-10-24 08:55:22 -04:00
d08d5a3b6c - Updates unit tests 2016-10-24 08:55:22 -04:00
8330bfc884 - Fixes "completed" status update of notification history
newsletters
- Fixes detection of post notification newsletters that do not contain any posts (i.e., blank ALC blocks)
- Updates unit test
2016-10-24 08:55:22 -04:00
ef21a8cca7 - Enables post notification schedule update upon newsletter saving during
step 3
2016-10-24 08:55:22 -04:00
e32c46a755 - Detaches posts_where action after posts are pulled from the database 2016-10-24 08:55:22 -04:00
092f69538a Merge pull request #667 from mailpoet/sending_to_trashed_subscribers_fix
Prevents newsletters from being sent to trashed subscribers
2016-10-24 15:26:55 +03:00
7a75367d75 Merge pull request #666 from mailpoet/export_filename_update
Increases export filename length and randomness
2016-10-24 13:36:36 +03:00
0b2701ade2 Merge pull request #656 from mailpoet/security_issue_636
API Token
2016-10-24 13:26:44 +03:00
1ac288d286 - Prevents newsletters from being sent to trashed subscribers
- Updates unit tests
- Addresses #629
2016-10-21 14:36:44 -04:00
516bc73092 - Increases export filename length and randomness 2016-10-21 11:42:13 -04:00
4088abef68 removed useless 'use' in unit test 2016-10-21 13:42:19 +02:00
f6cefc3f5c wrong email address in unit test 2016-10-21 13:38:23 +02:00
202e4b90e1 added unit test for API::checkPermissions 2016-10-21 13:36:41 +02:00
ee89bf0722 refactored API class 2016-10-21 13:36:41 +02:00
876d21300a fixed duplicated lines due to faulty rebase 2016-10-21 13:36:41 +02:00
0ca5b7a79f API Security
- added APIAccess class to define access levels of API Endpoints (permissions)
- use "mailpoet_token" for all nonce (just as before)
- merged setupPublic/setupAdmin methods in API in order to avoid duplication
- check permission if access level is not all
- fixed ABSPATH check in some classes
2016-10-21 13:36:41 +02:00
5d0ee43921 removed checkToken for admin ajax 2016-10-21 13:36:41 +02:00
cc523a3c0b ability to specify action for generateToken() method 2016-10-21 13:36:41 +02:00
2787998d32 Merge pull request #664 from mailpoet/editor_fixes
Editor fixes
2016-10-20 17:29:55 +02:00
38f6c95059 Update newsletter saving to reflect code review comments
- Switch to using full segment objects when saving newsletters
- Fix stale comment in newsletter editor's Newsletter model
- Fix typo in newsletter editor tests
2016-10-20 17:52:05 +03:00
cc03b631ff Allow newsletters.save endpoint to accept segments as list of objects 2016-10-20 16:08:41 +03:00
a3c77fb685 Fix PHP to JS date format converter to handle escaped symbols 2016-10-20 15:19:04 +03:00
3817e28960 Change newsletter not found error to a static one in editor 2016-10-20 13:38:07 +03:00
c3a78b1ea3 Fix newsletter editor to only save properties it changes 2016-10-20 13:37:32 +03:00
42877236c8 Merge pull request #663 from mailpoet/wp_repo_files
Preparation for plugin repo
2016-10-19 09:08:54 -04:00
6e87f3539c Update license.txt, readme.txt and link to plugin's repo page 2016-10-19 13:46:14 +03:00
7704ea4b68 Bump up release version to 0.0.49 2016-10-19 13:23:00 +03:00
12a3931b7b Merge pull request #662 from mailpoet/security_issue_634
PHP Object injection in front Router
2016-10-18 16:46:14 +03:00
25a55dbb67 Merge pull request #661 from mailpoet/security_issue_633
Import SQL injection
2016-10-18 14:50:08 +02:00
6758f60a81 Merge pull request #659 from mailpoet/import_data_sanitization
Sanitize import data
2016-10-18 12:35:52 +02:00
5e9e53ec41 - Updates router to use json_encode() instead of serialize() for publicly modified data payload
- Updates unit tests
- Fixes #634
2016-10-17 22:39:36 -04:00
1285252a8c - Adds unit tests 2016-10-17 20:27:58 -04:00
98f95f72ad - Adds validation for import data, including column names (fixes #633)
- Prevents nonexistent custom fields from being associated with subscribers
2016-10-17 20:22:25 -04:00
09ca788371 - Fixes subscriber count not being shown when new segment is created 2016-10-17 20:12:57 -04:00
b48cc5a959 - Updates import UI to escape HTML text
- Allows mixing of escaped and unescaped HTML text
- Removes server-side text escaping
2016-10-17 11:01:54 -04:00
812d138c4e Merge pull request #658 from mailpoet/import_and_mailer_host_restriction
Import and mailer host restriction
2016-10-17 16:19:42 +02:00
07bc35d4cd Merge pull request #625 from mailpoet/unit_tests
Adds unit test for newsletter scheduler
2016-10-17 11:37:17 +02:00
90b95a2c25 fixed 'newletter' typo and replaced integer weekdays by their carbon constant equivalent 2016-10-17 11:35:57 +02:00
78c50c41e3 - Fixes unit test
- Updates code as per code review comments
2016-10-18 14:29:53 -04:00
7eee7def63 Merge pull request #657 from mailpoet/security_issue_635
Security issue #635
2016-10-16 16:42:11 -04:00
9ba6e9806f - Adds data sanitization on the client and server side
- Closes #641
2016-10-16 13:02:49 -04:00
8c28dc3d8a - Restricts Amazon SES region to a specific list of hosts
- Updates unit tests
- Closes #647
2016-10-16 12:19:47 -04:00
9197e39fb4 - Restricts MailChimp API key to specific format
- Updates unit test
2016-10-16 11:57:56 -04:00
37f59814e5 removed unused methods in Util/CSS -> fixes security issue #635 2016-10-13 10:34:36 +02:00
bf894fc26f Bump up release version to 0.0.48, update changelog 2016-10-11 13:02:08 +03:00
0b2b42cf4d Merge pull request #654 from mailpoet/security_issue_1
Security issues round 1
2016-10-11 12:51:11 +03:00
542015a4f6 Improved removal of useless files in vendor folder during build process
- moved sort_order constraining logic to Listing handler's construct
2016-10-10 14:52:09 +02:00
f5a8323f5d removed 'test*' from removed folders in vendor as it was creating issues with Twig 2016-10-07 15:12:58 +02:00
55942cd88b prevent odd values for sort_order in listing.jsx 2016-10-07 14:38:25 +02:00
f26a2cbd26 fixes issue #651 2016-10-06 13:18:46 +02:00
4402f826c3 fixed issue with namespace AND fixed issue #649 2016-10-06 12:54:04 +02:00
b9745b555a make sure ABSPATH is defined before using it - fixes issue #648 2016-10-06 12:52:53 +02:00
f923a8063b cleanup useless files in vendor folder when building release (fixes issue #637) 2016-10-06 11:24:18 +02:00
f4367b9146 optimized the composer install a bit 2016-10-06 09:52:42 +02:00
a3395e41c9 fixes issue #632 2016-10-06 09:25:09 +02:00
be61135daf Merge pull request #627 from mailpoet/translations
Translations
2016-10-05 12:26:03 +03:00
21b4187a11 added missing text domains in _e functions 2016-10-05 10:26:59 +02:00
1c3c1e35e7 added 'lang' to gitignore 2016-10-05 10:08:24 +02:00
7fbf84db1f converted text domain to string instead of constant 2016-09-30 09:58:26 +02:00
42202f676a updated Env::plugin_name to constant for text domain 2016-09-27 14:54:23 +02:00
ba6198f956 added textdomain to __() calls 2016-09-27 14:53:44 +02:00
120af4170b fixed do makepot + removed mailpoet.pot from repo 2016-09-27 14:53:44 +02:00
e565a7a234 - Uses Codeception's native methods to verify expectations
- Updates next run date test conditions to use account for possible time
  difference
2016-09-26 12:35:00 -04:00
e1c5f609ff - Adds unit test 2016-09-23 20:16:53 -04:00
600 changed files with 22686 additions and 10586 deletions

View File

@ -8,8 +8,7 @@ Listen 8080
LogLevel notice
<Directory /home/ubuntu/mailpoet/wordpress>
AllowOverride All
Allow from All
Require all granted
</Directory>
</VirtualHost>

8
.circle_ci/fake-sendmail.rb Executable file
View File

@ -0,0 +1,8 @@
#!/usr/bin/ruby
path = "/tmp"
Dir.mkdir(path) if !File.exists?(path)
File.open("#{path}/mailpoet-#{Time.now.to_f}.txt", "w") do |f|
sleep 5
f.puts ARGV.inspect
$stdin.each_line { |line| f.puts line }
end

View File

@ -0,0 +1,3 @@
; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
; http://php.net/sendmail-path
sendmail_path = /home/ubuntu/mailpoet/.circle_ci/fake-sendmail.rb

View File

@ -13,4 +13,7 @@ WP_TEST_MAILER_MAILPOET_API=""
WP_TEST_MAILER_SENDGRID_API=""
WP_TEST_MAILER_SMTP_HOST=""
WP_TEST_MAILER_SMTP_LOGIN=""
WP_TEST_MAILER_SMTP_PASSWORD=""
WP_TEST_MAILER_SMTP_PASSWORD=""
WP_SVN_USERNAME=""
WP_SVN_PASSWORD=""
WP_TRANSIFEX_API_TOKEN=""

3
.eslintignore Normal file
View File

@ -0,0 +1,3 @@
**/vendor/**
**/testBundles/**
assets/js/src/newsletter_editor/tinymce/wplink/plugin.js

100
.eslintrc.es5.json Normal file
View File

@ -0,0 +1,100 @@
{
"extends": "airbnb/legacy",
"env": {
"amd": true,
"browser": true
},
"parserOptions": {
"ecmaVersion": 5
},
"rules": {
"import/no-amd": 0,
"comma-dangle": 0,
"space-before-function-paren": 0,
"prefer-arrow-callback": 0,
"no-undef": 0,
"key-spacing": 0,
"radix": 0,
"no-alert": 0,
"block-scoped-var": 0,
"guard-for-in": 0,
"no-prototype-builtins": 0,
"no-restricted-syntax": 0,
"newline-per-chained-call": 0,
"no-useless-concat": 0,
"no-multi-spaces": 0,
"no-nested-ternary": 0,
"semi-spacing": 0,
"no-sequences": 0,
"no-useless-return": 0,
"array-callback-return": 0,
"new-cap": 0,
"no-return-assign": 0,
"no-continue": 0,
"no-new": 0,
"no-cond-assign": 0,
"space-unary-ops": 0,
"no-redeclare": 0,
"no-console": 0,
"no-empty": 0,
"no-extra-semi": 0,
"no-useless-escape": 0,
"comma-spacing": 0,
"wrap-iife": 0,
"no-unused-expressions": 0,
"block-spacing": 0,
"computed-property-spacing": 0,
"no-plusplus": 0,
"array-bracket-spacing": 0,
"lines-around-directive": 0,
"no-unreachable": 0,
"default-case": 0,
"no-lonely-if": 0,
"space-before-blocks": 0,
"no-unneeded-ternary": 0,
"no-mixed-operators": 0,
"eqeqeq": 0,
"space-in-parens": 0,
"semi": 0,
"max-len": 0,
"no-multi-assign": 0,
"no-trailing-spaces": 0,
"global-require": 0,
"no-throw-literal": 0,
"no-extra-bind": 0,
"one-var-declaration-per-line": 0,
"consistent-return": 0,
"no-shadow": 0,
"no-underscore-dangle": 0,
"brace-style": 0,
"no-else-return": 0,
"no-use-before-define": 0,
"one-var": 0,
"camelcase": 0,
"spaced-comment": 0,
"quotes": 0,
"padded-blocks": 0,
"object-curly-spacing": 0,
"strict": 0,
"vars-on-top": 0,
"no-var": 0,
"space-infix-ops": 0,
"no-unused-vars": 0,
"object-shorthand": 0,
"new-parens": 0,
"no-param-reassign": 0,
"keyword-spacing": 0,
"eol-last": 0,
"dot-notation": 0,
"linebreak-style": 0,
"indent": 0,
"quote-props": 0,
"prefer-template": 0,
"func-names": 0
}
}

108
.eslintrc.es6.json Normal file
View File

@ -0,0 +1,108 @@
{
"extends": "airbnb",
"env": {
"amd": true,
"browser": true
},
"parserOptions": {
"ecmaVersion": 6,
"ecmaFeatures": {
"jsx": true
}
},
"rules": {
"import/no-amd": 0,
"react/no-multi-comp": 0,
"react/sort-comp": 0,
"react/jsx-max-props-per-line": 0,
"react/prop-types": 0,
"react/jsx-first-prop-new-line": 0,
"react/jsx-indent-props": 0,
"react/no-is-mounted": 0,
"react/jsx-no-target-blank": 0,
"react/no-render-return-value": 0,
"react/jsx-boolean-value": 0,
"react/jsx-indent": 0,
"react/jsx-no-bind": 0,
"react/no-array-index-key": 0,
"react/self-closing-comp": 0,
"react/jsx-tag-spacing": 0,
"react/jsx-closing-bracket-location": 0,
"react/no-string-refs": 0,
"react/jsx-curly-spacing": 0,
"react/no-did-mount-set-state": 0,
"react/prefer-stateless-function": 0,
"jsx-a11y/label-has-for": 0,
"jsx-a11y/no-static-element-interactions": 0,
"jsx-a11y/alt-text": 0,
"comma-dangle": 0,
"prefer-arrow-callback": 0,
"func-names": 0,
"space-before-function-paren": 0,
"object-shorthand": 0,
"no-bitwise": 0,
"arrow-body-style": 0,
"prefer-template": 0,
"eol-last": 0,
"no-unused-vars": 0,
"no-plusplus": 0,
"semi": 0,
"keyword-spacing": 0,
"default-case": 0,
"quote-props": 0,
"indent": 0,
"prefer-const": 0,
"arrow-parens": 0,
"array-callback-return": 0,
"consistent-return": 0,
"no-unreachable": 0,
"no-extra-semi": 0,
"import/no-unresolved": 0,
"import/extensions": 0,
"import/no-extraneous-dependencies": 0,
"camelcase": 0,
"template-curly-spacing": 0,
"quotes": 0,
"radix": 0,
"eqeqeq": 0,
"no-lonely-if": 0,
"space-unary-ops": 0,
"block-scoped-var": 0,
"no-extra-bind": 0,
"no-multi-spaces": 0,
"class-methods-use-this": 0,
"key-spacing": 0,
"no-multiple-empty-lines": 0,
"space-in-parens": 0,
"no-case-declarations": 0,
"array-bracket-spacing": 0,
"newline-per-chained-call": 0,
"no-else-return": 0,
"max-len": 0,
"comma-spacing": 0,
"no-useless-concat": 0,
"no-unused-expressions": 0,
"no-sequences": 0,
"no-extra-boolean-cast": 0,
"dot-notation": 0,
"no-param-reassign": 0,
"no-shadow": 0,
"one-var": 0,
"no-alert": 0,
"one-var-declaration-per-line": 0,
"no-script-url": 0,
"wrap-iife": 0,
"no-var": 0,
"vars-on-top": 0,
"space-infix-ops": 0,
"no-irregular-whitespace": 0,
"padded-blocks": 0,
"no-underscore-dangle": 0,
"object-curly-spacing": 0,
"no-undef": 0
}
}

47
.eslintrc.tests.json Normal file
View File

@ -0,0 +1,47 @@
{
"extends": "airbnb/legacy",
"env": {
"amd": true,
"mocha": true
},
"parserOptions": {
"ecmaVersion": 6
},
"rules": {
"import/no-amd": 0,
"no-undef": 0,
"one-var": 0,
"indent": 0,
"linebreak-style": 0,
"no-whitespace-before-property": 0,
"object-property-newline": 0,
"global-require": 0,
"semi": 0,
"keyword-spacing": 0,
"no-bitwise": 0,
"no-multi-assign": 0,
"newline-per-chained-call": 0,
"no-spaced-func": 0,
"func-call-spacing": 0,
"max-len": 0,
"space-unary-ops": 0,
"quotes": 0,
"no-unused-vars": 0,
"no-unused-expressions": 0,
"no-underscore-dangle": 0,
"quote-props": 0,
"no-shadow": 0,
"padded-blocks": 0,
"comma-dangle": 0,
"vars-on-top": 0,
"space-before-blocks": 0,
"object-curly-spacing": 0,
"no-param-reassign": 0,
"one-var-declaration-per-line": 0,
"func-names": 0,
"space-before-function-paren": 0
}
}

43
.gitignore vendored
View File

@ -1,19 +1,24 @@
.DS_Store
TODO
composer.phar
/vendor
tests/_output/*
tests/acceptance.suite.yml
tests/_support/_generated/*
node_modules
.env
npm-debug.log
!tasks/**
/views/cache/**
temp
.idea
mailpoet.zip
tests/javascript/testBundles
assets/css/*.css
assets/js/*.js
.vagrant
.DS_Store
TODO
composer.phar
/vendor
tests/_output/*
tests/acceptance.suite.yml
tests/_support/_generated/*
node_modules
.env
npm-debug.log
!tasks/**
/views/cache/**
temp
.idea
mailpoet.zip
tests/javascript/testBundles
assets/css/*.css
assets/css/*.json
assets/js/*.js
assets/js/*.json
.vagrant
lang
.mp_svn
/nbproject/

9
.tx/config Normal file
View File

@ -0,0 +1,9 @@
[main]
host = https://www.transifex.com
[mp3.mailpoet]
source_file = lang/mailpoet.pot
file_filter = lang/mailpoet-<lang>.po
source_lang = en_US
type = PO
minimum_perc = 75

View File

@ -5,30 +5,32 @@
- CamelCase for classes.
- camelCase for methods.
- snake_case for variables and class properties.
- Max line length at 80 chars.
- Classes can be no longer than 100 LOC.
- Methods can be no longer than 5 LOC.
- Pass no more than 4 parameters/hash keys into a method.
- Composition over Inheritance.
- Comments are a code smell.
- Routes can instantiate only one object.
- Comments are a code smell. If you need to use a comment - see if same idea can be achieved by more clearly expressing code.
- Require other classes with 'use' at the beginning of the class file.
- Do not specify 'public' if method is public, it's implicit.
- Always use guard clauses.
- Ensure compatibility with PHP 5.3 and newer versions.
- Cover your code in tests.
Recommendations:
- Max line length at 80 chars.
- Keep classes under 100 LOC.
- Keep methods under 10 LOC.
- Pass no more than 4 parameters/hash keys into a method.
- Keep Pull Requests small, under 100 LOC changed.
## Git flow.
- Do not commit to master.
- Open a short-living feature branch.
- Open a pull request.
- Add close #issue in pull request description.
- Add Jira issue reference in the title of the Pull Request.
- Work on the pull request.
- Wait for confirmation before merging to master.
- No one will accept a pull request that doesn't have 100% test coverage.
- Wait for review and confirmation from another developer before merging to master.
- Commit title no more than 80 chars, empty line after.
- Commit description as long as you want, 80 chars wrap.
- Keep the GitHub open issues count at less than 10.
## Issues creation.
- Issues are managed on Jira.
- Discuss issues on public Slack chats, discuss code in pull requests.
- Organize features on Trello.
- Open a small github issue only when it has been discussed.
- Open a small Jira issue only when it has been discussed.

View File

@ -46,11 +46,26 @@ $ ./do compile:all
$ ./do test:unit
```
- JS tests (using Mocha):
```sh
$ ./do test:javascript
```
- Debug tests:
```sh
$ ./do test:debug
```
- Code linters and quality checkers:
```sh
$ ./do qa
```
- Javascript linter:
```sh
$ ./do lint:javascript
```
# CSS
- [Stylus](https://learnboost.github.io/stylus/)
- [Nib extension](http://tj.github.io/nib/)
@ -109,6 +124,7 @@ Once javascript is compiled with `./do compile:javascript`, your module will be
```php
__()
_n()
_x()
```
```html
@ -128,3 +144,39 @@ _n()
- Handlebars.
You can use Twig i18n functions in Handlebars, just load your template from a Twig view.
# Build
To build a plugin , run `./build.sh`.
Some build process steps are described below (their dependencies etc.).
## packtranslations step
This step imports translations from Transifex and generates MO files. It requires:
* `tx` client: https://docs.transifex.com/client/installing-the-client
* `msgfmt` command (from Gettext package)
Finally , a `WP_TRANSIFEX_API_TOKEN` environment variable should be initialized with a valid key.
# Publish
The `publish` command currently does the following:
* Pushes translations POT file to Transifex;
* Publishes the release in SVN.
Before you run it, you need to:
1. Ensure there is an up-to-date local copy of MailPoet SVN repository in `.mp_svn` directory by running `./do svn:checkout`.
2. Have all your features merged in Git `master`, your `mailpoet.php` and `readme.txt` tagged with a new version.
3. Run `./build.sh` to produce a `mailpoet.zip` distributable archive.
Everything's ready? Then run `./do publish`.
If the job goes fine, you'll get a message like this:
```
Go to '.mp_svn' and run 'svn ci -m "Release 3.0.0-beta.9"' to publish the
release
Run 'svn copy ...' to tag the release
```
It's quite literal: you can review the changes to be pushed and if you're satisfied, run the suggested command to finish the release publishing process.
If you're confident, execute `./do publish --force` and your release will be published to the remote SVN repository without manual intervention (automatically). For easier authentication you might want to set `WP_SVN_USERNAME` and `WP_SVN_PASSWORD` environment variables.

View File

@ -1,16 +1,22 @@
<?php
class RoboFile extends \Robo\Tasks {
function install() {
$this->_exec('./composer.phar install');
$this->_exec('npm install');
return $this->taskExecStack()
->stopOnFail()
->exec('./composer.phar install')
->exec('npm install')
->run();
}
function update() {
$this->say(getenv('WP_TEST_URL'));
$this->_exec('./composer.phar update');
$this->_exec('npm update');
return $this->taskExecStack()
->stopOnFail()
->exec('./composer.phar update')
->exec('npm update')
->run();
}
protected function rsearch($folder, $extensions = array()) {
@ -60,16 +66,28 @@ class RoboFile extends \Robo\Tasks {
$this->_exec('./node_modules/webpack/bin/webpack.js --watch');
}
function compileAll() {
$this->compileJs();
$this->compileCss();
function compileAll($opts = ['env' => null]) {
$collection = $this->collectionBuilder();
$collection->addCode(function() use ($opts) {
return call_user_func(array($this, 'compileJs'), $opts);
});
$collection->addCode(function() use ($opts) {
return call_user_func(array($this, 'compileCss'), $opts);
});
return $collection->run();
}
function compileJs() {
$this->_exec('./node_modules/webpack/bin/webpack.js');
function compileJs($opts = ['env' => null]) {
$env = ($opts['env']) ?
sprintf('./node_modules/cross-env/dist/bin/cross-env.js NODE_ENV="%s"', $opts['env']) :
null;
return $this->_exec($env . ' ./node_modules/webpack/bin/webpack.js --bail');
}
function compileCss() {
function compileCss($opts = ['env' => null]) {
// Clean up folder from previous files
array_map('unlink', glob("assets/css/*.*"));
$css_files = array(
'assets/css/src/admin.styl',
'assets/css/src/newsletter_editor/newsletter_editor.styl',
@ -78,7 +96,7 @@ class RoboFile extends \Robo\Tasks {
'assets/css/src/importExport.styl'
);
$this->_exec(join(' ', array(
$compilation_result = $this->_exec(join(' ', array(
'./node_modules/stylus/bin/stylus',
'--include ./node_modules',
'--include-css',
@ -86,20 +104,52 @@ class RoboFile extends \Robo\Tasks {
join(' ', $css_files),
'-o assets/css/'
)));
// Create manifest file
$manifest = [];
foreach(glob('assets/css/*.css') as $style) {
// Hash and rename styles if production environment
if($opts['env'] === 'production') {
$hashed_style = sprintf(
'%s.%s.css',
pathinfo($style)['filename'],
substr(md5_file($style), 0, 8)
);
$manifest[basename($style)] = $hashed_style;
rename($style, str_replace(basename($style), $hashed_style, $style));
} else {
$manifest[basename($style)] = basename($style);
}
}
file_put_contents('assets/css/manifest.json', json_encode($manifest, JSON_PRETTY_PRINT));
return $compilation_result;
}
function makepot() {
$this->_exec('./node_modules/.bin/grunt makepot'.
' --gruntfile '.__DIR__.'/tasks/makepot/makepot.js'.
' --base_path '.__DIR__
return $this->_exec('./node_modules/.bin/grunt makepot'.
' --gruntfile='.__DIR__.'/tasks/makepot/makepot.js'.
' --base_path='.__DIR__
);
}
function pushpot() {
$this->_exec('./node_modules/.bin/grunt pushpot'.
' --gruntfile '.__DIR__.'/tasks/makepot/makepot.js'.
' --base_path '.__DIR__
);
return $this->collectionBuilder()
->addCode(array($this, 'txinit'))
->taskExec('tx push -s')
->run();
}
function packtranslations() {
return $this->collectionBuilder()
->addCode(array($this, 'txinit'))
->taskExec('./tasks/pack_translations.sh')
->run();
}
function txinit() {
// Define WP_TRANSIFEX_API_TOKEN env. variable
$this->loadEnv();
return $this->_exec('./tasks/transifex_init.sh');
}
function testUnit($opts=['file' => null, 'xml' => false]) {
@ -152,22 +202,31 @@ class RoboFile extends \Robo\Tasks {
function testDebug() {
$this->_exec('vendor/bin/codecept build');
$this->loadEnv();
$this->_exec('vendor/bin/codecept run unit --debug');
return $this->_exec('vendor/bin/codecept run unit --debug');
}
function testFailed() {
$this->loadEnv();
$this->_exec('vendor/bin/codecept build');
$this->_exec('vendor/bin/codecept run -g failed');
return $this->_exec('vendor/bin/codecept run -g failed');
}
function qa() {
$this->qaLint();
$this->qaCodeSniffer('all');
$collection = $this->collectionBuilder();
$collection->addCode(array($this, 'qaLint'));
$collection->addCode(function() {
return $this->qaCodeSniffer('all');
});
$collection->addCode(array($this, 'qaLintJavascript'));
return $collection->run();
}
function qaLint() {
$this->_exec('./tasks/php_lint.sh lib/ tests/ mailpoet.php');
return $this->_exec('./tasks/php_lint.sh lib/ tests/ mailpoet.php');
}
function qaLintJavascript() {
return $this->_exec('npm run lint');
}
function qaCodeSniffer($severity='errors') {
@ -176,18 +235,173 @@ class RoboFile extends \Robo\Tasks {
} else {
$severityFlag = '-n';
}
$this->_exec(
return $this->_exec(
'./vendor/bin/phpcs '.
'--standard=./tasks/code_sniffer/MailPoet '.
'--ignore=./lib/Util/Sudzy/*,./lib/Util/CSS.php,./lib/Util/XLSXWriter.php,'.
'./lib/Config/PopulatorData/Templates/* '.
'./lib/Util/pQuery/*,./lib/Config/PopulatorData/Templates/* '.
'lib/ '.
$severityFlag
);
}
function svnCheckout() {
$svn_dir = ".mp_svn";
$collection = $this->collectionBuilder();
// Clean up the SVN dir for faster shallow checkout
if(file_exists($svn_dir)) {
$collection->taskExecStack()
->exec('rm -rf ' . $svn_dir);
}
$collection->taskFileSystemStack()
->mkdir($svn_dir);
return $collection->taskExecStack()
->stopOnFail()
->dir($svn_dir)
->exec('svn co https://plugins.svn.wordpress.org/mailpoet/ -N .')
->exec('svn up trunk')
->exec('svn up assets')
->run();
}
function svnPublish($opts = ['force' => false]) {
$this->loadWPFunctions();
$svn_dir = ".mp_svn";
$plugin_data = get_plugin_data('mailpoet.php', false, false);
$plugin_version = $plugin_data['Version'];
$plugin_dist_name = sanitize_title_with_dashes($plugin_data['Name']);
$plugin_dist_file = $plugin_dist_name . '.zip';
$this->say('Publishing version: ' . $plugin_version);
// Sanity checks
if(!is_readable($plugin_dist_file)) {
$this->say("Failed to access " . $plugin_dist_file);
return;
} elseif(!file_exists($svn_dir . "/.svn/")) {
$this->say("$svn_dir/.svn/ dir not found, is it a SVN repository?");
return;
} elseif(file_exists($svn_dir . "/tags/" . $plugin_version)) {
$this->say("A SVN tag already exists: " . $plugin_version);
return;
}
$collection = $this->collectionBuilder();
// Clean up tmp dirs if the previous run was halted
if(file_exists("$svn_dir/trunk_new") || file_exists("$svn_dir/trunk_old")) {
$collection->taskFileSystemStack()
->stopOnFail()
->remove(array("$svn_dir/trunk_new", "$svn_dir/trunk_old"));
}
// Extract the distributable zip to tmp trunk dir
$collection->taskExtract($plugin_dist_file)
->to("$svn_dir/trunk_new")
->preserveTopDirectory(false);
// Rename current trunk
if(file_exists("$svn_dir/trunk")) {
$collection->taskFileSystemStack()
->rename("$svn_dir/trunk", "$svn_dir/trunk_old");
}
// Replace old trunk with a new one
$collection->taskFileSystemStack()
->stopOnFail()
->rename("$svn_dir/trunk_new", "$svn_dir/trunk")
->remove("$svn_dir/trunk_old");
// Add new repository assets
$collection->taskFileSystemStack()
->mirror('./plugin_repository/assets', "$svn_dir/assets_new");
// Rename current assets folder
if(file_exists("$svn_dir/assets")) {
$collection->taskFileSystemStack()
->rename("$svn_dir/assets", "$svn_dir/assets_old");
}
// Replace old assets with new ones
$collection->taskFileSystemStack()
->stopOnFail()
->rename("$svn_dir/assets_new", "$svn_dir/assets")
->remove("$svn_dir/assets_old");
// Windows compatibility
$awkCmd = '{print " --force \""$2"\""}';
// Mac OS X compatibility
$xargsFlag = (stripos(PHP_OS, 'Darwin') !== false) ? '' : '-r';
$collection->taskExecStack()
->stopOnFail()
// Set SVN repo as working directory
->dir($svn_dir)
// Remove files from SVN repo that have already been removed locally
->exec("svn st | grep ^! | awk '$awkCmd' | xargs $xargsFlag svn rm")
// Recursively add files to SVN that haven't been added yet
->exec("svn add --force * --auto-props --parents --depth infinity -q");
$result = $collection->run();
if($result->wasSuccessful()) {
// Run or suggest release command depending on a flag
$repo_url = "https://plugins.svn.wordpress.org/$plugin_dist_name";
$release_cmd = "svn ci -m \"Release $plugin_version\"";
$tag_cmd = "svn copy $repo_url/trunk $repo_url/tags/$plugin_version -m \"Tag $plugin_version\"";
if(!empty($opts['force'])) {
$svn_login = getenv('WP_SVN_USERNAME');
$svn_password = getenv('WP_SVN_PASSWORD');
if ($svn_login && $svn_password) {
$release_cmd .= " --username $svn_login --password $svn_password";
} else {
$release_cmd .= ' --force-interactive';
}
$result = $this->taskExecStack()
->stopOnFail()
->dir($svn_dir)
->exec($release_cmd)
->exec($tag_cmd)
->run();
} else {
$this->yell(
"Go to '$svn_dir' and run '$release_cmd' to publish the release"
);
$this->yell(
"Run '$tag_cmd' to tag the release"
);
}
}
return $result;
}
public function publish($opts = ['force' => false]) {
return $this->collectionBuilder()
->addCode(array($this, 'pushpot'))
->addCode(function () use ($opts) {
return $this->svnPublish($opts);
})
->run();
}
protected function loadEnv() {
$dotenv = new Dotenv\Dotenv(__DIR__);
$dotenv->load();
}
}
protected function loadWPFunctions() {
$this->loadEnv();
define('ABSPATH', getenv('WP_TEST_PATH') . '/');
define('WPINC', 'wp-includes');
require_once(ABSPATH . WPINC . '/functions.php');
require_once(ABSPATH . WPINC . '/formatting.php');
require_once(ABSPATH . WPINC . '/plugin.php');
require_once(ABSPATH . 'wp-admin/includes/plugin.php');
}
}

View File

@ -22,3 +22,7 @@
@require 'progress_bar'
@require 'subscribers'
@require 'pages'
@require 'mp2migrator'

View File

@ -1,3 +1,15 @@
$box-width = 425px
$box-height = 150px
$thumbnail-width = $box-height
$thumbnail-height = $thumbnail-width
$box-description-space-between-heading-and-paragraph = 5px
$box-description-height = 110px
$box-description-text-height = $box-description-height - $box-description-space-between-heading-and-paragraph
$box-heading-line-height = $box-description-text-height / 4
$box-heading-font-size = $box-heading-line-height * 5/7
$box-description-line-height = $box-heading-line-height / 2
$box-description-font-size = $box-description-line-height
.mailpoet_boxes.mailpoet_boxes_loading
opacity: 0.2
@ -6,8 +18,8 @@
position: relative
padding: 15px
margin: 15px 25px 0 0
width: 425px
height: 150px
width: $box-width
height: $box-height
border: 1px solid #dedede
background-color: #fff
@ -18,15 +30,15 @@
background-position: center
color: #222
border: 1px solid #ccc
width: 150px
height: 150px
width: $thumbnail-height
height: $thumbnail-width
margin-right: 15px
float: left
overflow: hidden
position: relative
img
min-width: 150px
min-width: $thumbnail-width
height: auto
width: 110%
position: relative
@ -60,20 +72,21 @@
.mailpoet_boxes .mailpoet_description
float:left
width: 245px
max-height: calc(115px - 2em)
padding-bottom: 2em
max-height: $box-description-height
padding-bottom: 0
overflow: hidden
h3
margin: 0 0 0.7em 0
margin: 0 0 $box-description-space-between-heading-and-paragraph 0
overflow: hidden
max-width: 210px
line-height: 1.4em
line-height: $box-heading-line-height
font-size: $box-heading-font-size
p
font-size: 13px
line-height: 1.5
margin: 1em 0
font-size: $box-description-font-size
line-height: $box-description-line-height
margin: 0
.mailpoet_boxes .mailpoet_actions
position: absolute

View File

@ -17,6 +17,10 @@ a:focus
.mailpoet_hidden
display: none
// add margins to a div
.mailpoet_spaced_block
margin: 1em 0
// select 2
.select2-container
width: 25em !important

View File

@ -1,3 +1,53 @@
$excellent-badge-color = #2993ab
$good-badge-color = #f0b849
$bad-badge-color = #d54e21
$green-badge-color = #55bd56
#newsletters_container
h2.nav-tab-wrapper
margin-bottom: 1rem
margin-bottom: 1rem
.mailpoet_stats_text
font-size: 14px
font-weight: 600;
.mailpoet_stat
&_excellent
color: $excellent-badge-color
&_good
color: $good-badge-color
&_bad
color: $bad-badge-color
&_hidden
display: none
&_link_small
text-decoration: underline !important
font-size: 0.75rem
.mailpoet_badge
padding: 4px 6px 3px 6px
color: #FFFFFF
margin-right: 4px
text-transform: uppercase
font-size: 0.5625rem
font-weight: 500
border-radius: 3px
letter-spacing: 1px
vertical-align: middle
&_excellent
background: $excellent-badge-color
&_good
background: $good-badge-color
&_bad
background: $bad-badge-color
&_green
background: $green-badge-color

View File

@ -0,0 +1,33 @@
#logger
width: 100%
height: 300px
background-color: transparent
border: 0
border-top: 1px #aba9a9 solid
padding: 2px
overflow: scroll
resize: both
font-size: 0.85em
margin-top: 20px
#progressbar
width: 50%
background-color: #d8d8d8
border-radius: 5px
progressbar_color = #fecf23
progressbar_gradient_to_color = #fd9215
.ui-progressbar .ui-progressbar-value
height: 100%
background-color: progressbar_color
background-image: linear-gradient(to bottom, progressbar_color, progressbar_gradient_to_color)
border-radius: 3px
box-shadow: 0 1px 0 rgba(255,255,255,0.5) inset
border 0
.mailpoet_progress_label
font-size: 15px
.error_msg
color: #f00

View File

@ -9,12 +9,13 @@
background: rgba(255, 255, 255, 0)
transition: background .15s ease-out
&:hover
.mailpoet_automated_latest_content_block:hover &
background: rgba(255, 255, 255, 0.7)
cursor: pointer
.mailpoet_automated_latest_content_block_posts
overflow: auto
pointer-events: none
& > .mailpoet_block
width: 100%

View File

@ -34,7 +34,7 @@ $block-text-line-height = $text-line-height
position: relative
line-height: $block-text-line-height
p, h1, h2, h3, h4, h5, h6
h1, h2, h3, h4, h5, h6
line-height: $block-text-line-height
padding: 0
margin: 0
@ -44,9 +44,15 @@ $block-text-line-height = $text-line-height
h1, h2, h3, h4, h5, h6
margin-bottom: 0.3em
p
p:not(.mailpoet_wp_post)
margin-top: 0
margin-bottom: 0
padding: 0
margin: 0
p
line-height: $block-text-line-height
font-style: normal
font-weight: normal
ul

View File

@ -131,6 +131,7 @@ body
display: none
.wrap > .mailpoet_notice,
.notice
.update-nag
margin-left: 2px + 15px !important

227
assets/css/src/pages.styl Normal file
View File

@ -0,0 +1,227 @@
/*
Based on /wp-admin/css/about.css of WP 4.7.
This is to make MailPoet pages independent of the WordPress
About page styles that may differ across WP versions.
*/
.mailpoet-about-wrap
position: relative
margin: 25px 40px 0 20px
max-width: 1050px /* readability */
font-size: 15px
div.updated, div.error, .notice
display: none !important
hr
border: 0
height: 0
margin: 0
border-top: 1px solid rgba(0, 0, 0, 0.1)
img
margin: 0
max-width: 100%
height: auto
vertical-align: middle
.mailpoet-logo
position: absolute
top: .2em
right: 0;
.nav-tab
padding-right: 15px
padding-left: 15px
font-size: 18px
p
line-height: 1.5
font-size: 14px
.feature-section p
max-width: 55em
margin-left: auto
margin-right: auto
h1
margin: 0.2em 200px 0 0
padding: 0
color: #32373c
line-height: 1.2em
font-size: 2.8em
font-weight: 400
h2
margin: 40px 0 .6em
font-size: 2.7em
line-height: 1.3
font-weight: 300
text-align: center
h3
margin: 1.25em 0 .6em
font-size: 1.4em
line-height: 1.5
h4
color: #23282d
.about-description
.about-text
margin-top: 1.4em
font-weight: 400
line-height: 1.6em
font-size: 19px
.about-text
margin: 1em 200px 1em 0
min-height: 60px
color: #555d66
[class$=col]
.col
float: left
position: relative
.two-col
.col
margin-right: 4.799999999%
width: 47.6%
.two-col
img
margin-bottom: 1.5em
.feature-section
&.two-col
.col
display: inline-block
float: none
margin-top: 1em
margin-right: 4.799999999%
width: calc( 47.6% - 4px )
vertical-align: top
.three-col
.col
margin-right: 4.999999999%
width: 29.95%
.two-col .col:nth-of-type(2n)
.three-col .col:nth-of-type(3n)
margin-right: 0
.feature-section
&.two-col
h3
margin-top: 0
.feature-section
h4
margin: 1.4em 0 0.6em 0
font-size: 1em
.feature-section
p
margin-top: 0.6em
.lead-description
font-size: 1.5em
text-align: center
.two-col-text
column-count: 2
column-gap: 40px
.two-col-text
p:first-of-type
margin-top: 0
.headline-feature
&.feature-video
position: relative
margin: 40px 0
padding-bottom: 56.25%
width: 100%
max-width: 100%
height: 0
text-align: center
.feature-video
embed
position: absolute
top: 0
left: 0
width: 100%
height: 100%
.featured-image
text-align: center
.feature-section
overflow: hidden
padding: 0 0 40px
.feature-section
&.no-heading
padding-top: 35px
.headline-feature
margin: 0 auto
max-width: 80%
.feature-section
.media-container
overflow: hidden
.feature-section
img
margin-bottom: 1em
.embed-container
text-align: center
.embed-container
iframe
max-width: 100%
.wp-embedded-content
max-width: 100%
.feature-section
.col
margin-top: 40px
.changelog
margin-bottom: 40px
.changelog
&.feature-section
.col
margin-top: 40px
@media screen and (max-width: 782px)
.two-col-text
column-count: 1
.three-col img
display: block
margin: 0 auto
@media only screen and (max-width: 500px)
margin-right: 20px
margin-left: 10px
h1
.about-text
margin-right: 0
.about-text
margin-bottom: 0.25em
.mailpoet-logo
position: relative
margin: 1em 0
width: 100%
text-align: center
.two-col .col
.three-col .col
width: 100% !important
float: none !important

View File

@ -4,6 +4,7 @@
padding: 0
width: 100%
margin: 0
margin-bottom: 10px
border-radius: 5px
position: relative
@ -25,5 +26,5 @@
.mailpoet_progress_complete
.mailpoet_progress_bar
background-color: #fecf23
background-image: linear-gradient(top, #fecf23, #fd9215)
background-color: hsla(191, 78%, 80%, 1)
background-image: linear-gradient(top, hsla(191, 78%, 80%, 1), hsla(191, 76%, 67%, 1))

View File

@ -15,13 +15,12 @@
padding 15px 15px 0 15px
margin 0 25px 25px 0
width 300px
height 250px
height 300px
border 1px solid #dedede
background-color #fff
h3
text-align center
height 54px
line-height 54px
font-size 1.5em
.mailpoet_description
font-size 14px
@ -39,6 +38,7 @@
font-weight bold
.mailpoet_active
.mailpoet_status
background-color #088b00
span
visibility visible
#mailpoet_mta_activate
@ -52,6 +52,15 @@
.button-secondary
margin 0 -6px -4px 0
// premium key
.mailpoet_key
&_valid
&::before
content ' '
&_invalid
&::before
content: ' '
// responsive
@media screen and (max-width: 782px)
.form-table th

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 779 B

BIN
assets/img/datepicker/animated-overlay.gif Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 985 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 418 B

After

Width:  |  Height:  |  Size: 140 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 312 B

After

Width:  |  Height:  |  Size: 140 B

BIN
assets/img/datepicker/ui-bg_flat_10_000000_40x100.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 205 B

After

Width:  |  Height:  |  Size: 83 B

BIN
assets/img/datepicker/ui-bg_glass_100_f6f6f6_1x400.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 262 B

After

Width:  |  Height:  |  Size: 85 B

BIN
assets/img/datepicker/ui-bg_glass_100_fdf5ce_1x400.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 348 B

After

Width:  |  Height:  |  Size: 139 B

BIN
assets/img/datepicker/ui-bg_glass_65_ffffff_1x400.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 207 B

After

Width:  |  Height:  |  Size: 74 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 278 B

After

Width:  |  Height:  |  Size: 79 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 328 B

After

Width:  |  Height:  |  Size: 161 B

BIN
assets/img/datepicker/ui-icons_222222_256x240.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.8 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

BIN
assets/img/datepicker/ui-icons_228ef1_256x240.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

BIN
assets/img/datepicker/ui-icons_454545_256x240.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

BIN
assets/img/datepicker/ui-icons_ef8c08_256x240.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

BIN
assets/img/datepicker/ui-icons_ffd27a_256x240.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

BIN
assets/img/datepicker/ui-icons_ffffff_256x240.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.2 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 925 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1016 B

After

Width:  |  Height:  |  Size: 542 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 767 B

After

Width:  |  Height:  |  Size: 423 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 397 B

After

Width:  |  Height:  |  Size: 274 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 735 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 678 B

After

Width:  |  Height:  |  Size: 403 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 634 B

After

Width:  |  Height:  |  Size: 389 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 709 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 601 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 835 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 683 B

After

Width:  |  Height:  |  Size: 434 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 435 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 272 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 733 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 400 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 386 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 706 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 603 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 832 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 433 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 554 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 909 B

After

Width:  |  Height:  |  Size: 460 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 687 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 524 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 527 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 687 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 618 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 718 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 566 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 662 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 248 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 751 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 552 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 344 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 776 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 536 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 848 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 471 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.0 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 753 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.0 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

Some files were not shown because too many files have changed in this diff Show More