Changeset 2859273
- Timestamp:
- 02/02/2023 11:55:54 PM (3 years ago)
- Location:
- optinmonster/trunk
- Files:
-
- 55 added
- 46 deleted
- 15 edited
-
CHANGELOG.md (modified) (1 diff)
-
OMAPI/Blocks.php (modified) (3 diffs)
-
OMAPI/EasyDigitalDownloads/Output.php (modified) (3 diffs)
-
OMAPI/EasyDigitalDownloads/RestApi.php (modified) (6 diffs)
-
OMAPI/Output.php (modified) (2 diffs)
-
OMAPI/Pages.php (modified) (5 diffs)
-
OMAPI/RestApi.php (modified) (24 diffs)
-
OMAPI/Urls.php (modified) (1 diff)
-
OMAPI/WPForms/RestApi.php (modified) (1 diff)
-
OMAPI/WooCommerce.php (modified) (1 diff)
-
OMAPI/WooCommerce/RestApi.php (modified) (5 diffs)
-
assets/dist/css/blocks-admin.min.js (added)
-
assets/dist/css/common.min.css (modified) (1 diff)
-
assets/dist/css/common.min.js (added)
-
assets/dist/css/elementor-admin-dark.min.js (added)
-
assets/dist/css/elementor-admin.min.js (added)
-
assets/dist/css/elementor-frontend.min.js (added)
-
assets/dist/css/metabox.min.js (added)
-
assets/dist/css/seedprod.min.js (added)
-
assets/dist/css/settings.min.css (deleted)
-
assets/dist/css/trustpulse.min.js (added)
-
assets/dist/js/settings.min.js (deleted)
-
assets/dist/js/trustpulse.min.js (deleted)
-
optin-monster-wp-api.php (modified) (2 diffs)
-
readme.txt (modified) (2 diffs)
-
vue/dist/css/about.573e0e35.css (added)
-
vue/dist/css/about.d1485509.css (deleted)
-
vue/dist/css/campaign-edit.197e7e3a.css (deleted)
-
vue/dist/css/campaign-edit.c5102a65.css (added)
-
vue/dist/css/campaigns.89824908.css (deleted)
-
vue/dist/css/campaigns.e713cf50.css (added)
-
vue/dist/css/common.63e3f1f4.css (added)
-
vue/dist/css/common.6ac52745.css (deleted)
-
vue/dist/css/dashboard.06f1c35c.css (added)
-
vue/dist/css/dashboard.ce24d1b7.css (deleted)
-
vue/dist/css/integrations.2586b596.css (deleted)
-
vue/dist/css/integrations.c2747832.css (added)
-
vue/dist/css/monsterleads.70434c02.css (added)
-
vue/dist/css/monsterleads.9b6ec4a2.css (deleted)
-
vue/dist/css/onboarding-wizard.6e7013f7.css (added)
-
vue/dist/css/onboarding-wizard.ffcaae7a.css (deleted)
-
vue/dist/css/personalization.2ddffe3b.css (added)
-
vue/dist/css/personalization.614363ee.css (deleted)
-
vue/dist/css/playbooks.49ce5d72.css (added)
-
vue/dist/css/settings.4837c79a.css (deleted)
-
vue/dist/css/settings.87112f6a.css (added)
-
vue/dist/css/temp.0966b502.css (deleted)
-
vue/dist/css/temp.6c2fb77b.css (added)
-
vue/dist/css/templates.6e00bef5.css (deleted)
-
vue/dist/css/templates.9c7f8497.css (added)
-
vue/dist/css/university.1087f89c.css (deleted)
-
vue/dist/css/university.cbb2a098.css (added)
-
vue/dist/img/playbooks-limit-exceeded.920b9499.png (added)
-
vue/dist/js/about.19b960a9.js (deleted)
-
vue/dist/js/about.19b960a9.js.map (deleted)
-
vue/dist/js/about.e510c43b.js (added)
-
vue/dist/js/about.e510c43b.js.map (added)
-
vue/dist/js/campaign-edit.0984a155.js (deleted)
-
vue/dist/js/campaign-edit.0984a155.js.map (deleted)
-
vue/dist/js/campaign-edit.62fbd055.js (added)
-
vue/dist/js/campaign-edit.62fbd055.js.map (added)
-
vue/dist/js/campaigns.1c033ca2.js (deleted)
-
vue/dist/js/campaigns.1c033ca2.js.map (deleted)
-
vue/dist/js/campaigns.97db78bd.js (added)
-
vue/dist/js/campaigns.97db78bd.js.map (added)
-
vue/dist/js/common.04b0dc70.js (deleted)
-
vue/dist/js/common.04b0dc70.js.map (deleted)
-
vue/dist/js/common.55ca48a3.js (added)
-
vue/dist/js/common.55ca48a3.js.map (added)
-
vue/dist/js/connect.4ec4c163.js (added)
-
vue/dist/js/connect.4ec4c163.js.map (added)
-
vue/dist/js/connect.b5da6291.js (deleted)
-
vue/dist/js/connect.b5da6291.js.map (deleted)
-
vue/dist/js/dashboard.37c334cd.js (added)
-
vue/dist/js/dashboard.37c334cd.js.map (added)
-
vue/dist/js/dashboard.75020e53.js (deleted)
-
vue/dist/js/dashboard.75020e53.js.map (deleted)
-
vue/dist/js/integrations.a7ee0b3d.js (deleted)
-
vue/dist/js/integrations.a7ee0b3d.js.map (deleted)
-
vue/dist/js/integrations.e1c95980.js (added)
-
vue/dist/js/integrations.e1c95980.js.map (added)
-
vue/dist/js/monsterleads.4d8ff778.js (deleted)
-
vue/dist/js/monsterleads.4d8ff778.js.map (deleted)
-
vue/dist/js/monsterleads.b674494b.js (added)
-
vue/dist/js/monsterleads.b674494b.js.map (added)
-
vue/dist/js/onboarding-wizard.2be40ddc.js (added)
-
vue/dist/js/onboarding-wizard.2be40ddc.js.map (added)
-
vue/dist/js/onboarding-wizard.e8d159cc.js (deleted)
-
vue/dist/js/onboarding-wizard.e8d159cc.js.map (deleted)
-
vue/dist/js/personalization.4ba09eec.js (added)
-
vue/dist/js/personalization.4ba09eec.js.map (added)
-
vue/dist/js/personalization.c4768d9a.js (deleted)
-
vue/dist/js/personalization.c4768d9a.js.map (deleted)
-
vue/dist/js/playbooks.a4164f53.js (added)
-
vue/dist/js/playbooks.a4164f53.js.map (added)
-
vue/dist/js/settings.0d39014a.js (deleted)
-
vue/dist/js/settings.0d39014a.js.map (deleted)
-
vue/dist/js/settings.1365eaca.js (added)
-
vue/dist/js/settings.1365eaca.js.map (added)
-
vue/dist/js/temp.6b209a61.js (deleted)
-
vue/dist/js/temp.6b209a61.js.map (deleted)
-
vue/dist/js/temp.98183d2c.js (added)
-
vue/dist/js/temp.98183d2c.js.map (added)
-
vue/dist/js/templates.a582635c.js (deleted)
-
vue/dist/js/templates.a582635c.js.map (deleted)
-
vue/dist/js/templates.eaea8ca9.js (added)
-
vue/dist/js/templates.eaea8ca9.js.map (added)
-
vue/dist/js/university.61cb62e6.js (deleted)
-
vue/dist/js/university.61cb62e6.js.map (deleted)
-
vue/dist/js/university.d4db1e47.js (added)
-
vue/dist/js/university.d4db1e47.js.map (added)
-
vue/dist/manifest.json (modified) (3 diffs)
-
vue/dist/wp-om-app-41fa8fcc.js (deleted)
-
vue/dist/wp-om-app-41fa8fcc.js.map (deleted)
-
vue/dist/wp-om-app-89571f61.js (added)
-
vue/dist/wp-om-app-89571f61.js.map (added)
Legend:
- Unmodified
- Added
- Removed
-
optinmonster/trunk/CHANGELOG.md
r2850643 r2859273 1 1 # Changelog 2 2 All notable changes to the OptinMonster plugin will be documented in this file. 3 4 ### 2.12.0 - 2023-02-02 5 * Fixed wp_enqueue_script error on widgets page. 6 * Addresses issues with page caching by fetching rules data for Easy Digital Downloads and WooCommerce via ajax. 7 * Small improvements to onbaording 8 * Updated bundled version of Vue and related dependencies to address some security scanners. 9 * Introduced Playbooks to the plugin 3 10 4 11 ### 2.11.2 - 2023-01-18 -
optinmonster/trunk/OMAPI/Blocks.php
r2758201 r2859273 136 136 */ 137 137 public function enqueue_block_editor_assets() { 138 global $pagenow; 139 138 140 $version = $this->base->asset_version(); 139 141 $css_handle = $this->base->plugin_slug . '-blocks-admin'; … … 160 162 OMAPI_Utils::add_inline_script( $campaign_selector_handle, 'OMAPI', $this->get_data_for_js() ); 161 163 162 wp_enqueue_script( 163 $this->base->plugin_slug . '-gutenberg-sidebar-settings', 164 $this->base->url . 'assets/dist/js/om-settings.min.js', 165 array( $campaign_selector_handle, 'wp-plugins', 'wp-edit-post', 'wp-element' ), 166 $version 167 ); 168 169 if ( version_compare( get_bloginfo( 'version' ), '5.3', '>=' ) ) { 164 $is_widgets_page = $pagenow === 'widgets.php'; 165 166 // Prevent enqueueing sidebar settings on widgets screen... 167 if ( ! $is_widgets_page ) { 168 wp_enqueue_script( 169 $this->base->plugin_slug . '-gutenberg-sidebar-settings', 170 $this->base->url . 'assets/dist/js/om-settings.min.js', 171 array( $campaign_selector_handle, 'wp-plugins', 'wp-edit-post', 'wp-element' ), 172 $version 173 ); 174 } 175 176 if ( version_compare( $GLOBALS['wp_version'], '5.3', '>=' ) ) { 170 177 wp_enqueue_script( 171 178 $this->base->plugin_slug . '-gutenberg-format-button', 172 179 $this->base->url . 'assets/dist/js/om-format.min.js', 173 array( $campaign_selector_handle, 'wp-rich-text', 'wp-element', 'wp-editor' ), 180 array( 181 $campaign_selector_handle, 182 'wp-rich-text', 183 'wp-element', 184 $is_widgets_page && version_compare( $GLOBALS['wp_version'], '5.8.0', '>=' ) 185 ? 'wp-edit-widgets' 186 : 'wp-editor', 187 ), 174 188 $version 175 189 ); … … 241 255 'canMonsterlink' => $this->base->has_rule_type( 'monster-link' ), 242 256 'templatesUri' => OMAPI_Urls::templates(), 257 'playbooksUri' => OMAPI_Urls::playbooks(), 243 258 'campaignsUri' => OMAPI_Urls::campaigns(), 244 259 'settingsUri' => OMAPI_Urls::settings(), -
optinmonster/trunk/OMAPI/EasyDigitalDownloads/Output.php
r2758201 r2859273 68 68 */ 69 69 public function display_rules_data() { 70 $output = array( 71 'cart' => $this->get_cart(), 72 ); 73 74 $user_id = get_current_user_id(); 75 70 $cart = $this->get_cart(); 71 $user_id = get_current_user_id(); 76 72 $purchased_products = edd_get_users_purchased_products( $user_id ); 73 $cart['customer'] = null; 77 74 78 75 if ( ! empty( $purchased_products ) ) { … … 84 81 ); 85 82 86 $ output['customer'] = array(83 $cart['customer'] = array( 87 84 'products' => $customer_products, 88 85 'stats' => edd_get_purchase_stats_by_user( $user_id ), … … 90 87 } 91 88 92 return $ output;89 return $cart; 93 90 } 94 91 -
optinmonster/trunk/OMAPI/EasyDigitalDownloads/RestApi.php
r2758201 r2859273 33 33 'edd/autogenerate', 34 34 array( 35 'methods' => 'POST',35 'methods' => WP_REST_Server::CREATABLE, 36 36 'permission_callback' => array( $this, 'can_manage_shop' ), 37 37 'callback' => array( $this, 'autogenerate' ), … … 43 43 'edd/save', 44 44 array( 45 'methods' => 'POST',45 'methods' => WP_REST_Server::CREATABLE, 46 46 'permission_callback' => array( $this, 'can_update_settings' ), 47 47 'callback' => array( $this, 'save' ), … … 53 53 'edd/disconnect', 54 54 array( 55 'methods' => 'POST',55 'methods' => WP_REST_Server::CREATABLE, 56 56 'permission_callback' => array( $this, 'can_update_settings' ), 57 57 'callback' => array( $this, 'disconnect' ), … … 63 63 'edd/settings', 64 64 array( 65 'methods' => 'GET',65 'methods' => WP_REST_Server::READABLE, 66 66 'permission_callback' => array( $this, 'logged_in_and_can_access_route' ), 67 67 'callback' => array( $this, 'get_settings' ), … … 71 71 register_rest_route( 72 72 $this->namespace, 73 'edd/ info',74 array( 75 'methods' => 'GET',73 'edd/display-rules', 74 array( 75 'methods' => WP_REST_Server::READABLE, 76 76 'permission_callback' => '__return_true', 77 'callback' => array( $this, 'get_display_rules_info s' ),77 'callback' => array( $this, 'get_display_rules_info' ), 78 78 ) 79 79 ); … … 222 222 * This is used when there's an event on cart page to update information in the frontend. 223 223 * 224 * Route: GET omapp/v1/edd/ info225 * 226 * @since 2.8.0 227 * 228 * @return WP_REST_Response The API Response 229 * @throws Exception If plugin action fails. 230 */ 231 public function get_display_rules_info s() {224 * Route: GET omapp/v1/edd/display-rules 225 * 226 * @since 2.8.0 227 * 228 * @return WP_REST_Response The API Response 229 * @throws Exception If plugin action fails. 230 */ 231 public function get_display_rules_info() { 232 232 $edd_output = new OMAPI_EasyDigitalDownloads_Output(); 233 233 234 return array( 235 'data' => $edd_output->display_rules_data(), 234 return new WP_REST_Response( 235 $edd_output->display_rules_data(), 236 200 236 237 ); 237 238 } -
optinmonster/trunk/OMAPI/Output.php
r2850643 r2859273 778 778 779 779 $output = array( 780 'wc_cart' => $this->base->woocommerce->get_cart(),781 780 'object_id' => $object_id, 782 781 'object_key' => $object_key, … … 784 783 'term_ids' => $tax_terms, 785 784 'wp_json' => untrailingslashit( get_rest_url() ), 785 'wc_active' => OMAPI_WooCommerce::is_active(), 786 'edd_active' => OMAPI_EasyDigitalDownloads::is_active(), 787 'nonce' => wp_create_nonce( 'wp_rest' ), 786 788 ); 787 788 if ( OMAPI_EasyDigitalDownloads::is_active() ) {789 $output['edd'] = $this->edd_output->display_rules_data();790 }791 789 792 790 $output = apply_filters( 'optin_monster_display_rules_data_output', $output ); -
optinmonster/trunk/OMAPI/Pages.php
r2826126 r2859273 123 123 'app' => true, 124 124 'callback' => array( $this, 'render_app_loading_page' ), 125 ); 126 127 $this->pages['optin-monster-playbooks'] = array( 128 'name' => __( 'Playbooks', 'optin-monster-api' ), 129 'app' => true, 130 'callback' => array( $this, 'render_app_loading_page' ), 131 'new_badge_period' => array( 132 'start' => '2023-02-02 00:00:00', 133 'end' => '2023-03-03 59:59:59', 134 ), 125 135 ); 126 136 … … 343 353 } 344 354 355 $menu_title = ! empty( $page['menu'] ) ? $page['menu'] : $page['name']; 356 if ( $this->maybe_add_new_badge( $page ) ) { 357 $menu_title .= ' <span class="omapi-menu-new">New!<span>'; 358 } 359 345 360 $hooks[] = $hook = add_submenu_page( 346 361 $parent_slug, // $parent_slug 347 362 $page['name'], // $page_title 348 ! empty( $page['menu'] ) ? $page['menu'] : $page['name'], // $menu_title363 $menu_title, 349 364 $this->base->access_capability( $page['slug'] ), 350 365 $page['slug'], … … 514 529 $loader->localize( $js_args ); 515 530 516 wp_enqueue_script( $this->base->plugin_slug . '-api-script', OPTINMONSTER_APIJS_URL, $loader->handles['js'], null, true );517 add_filter( 'script_loader_tag', array( $this, 'filter_api_script' ), 10, 2 );518 519 531 return $loader; 520 532 … … 523 535 524 536 return false; 525 }526 527 /**528 * Filters the API script tag to add the preview user/account data attributes.529 *530 * @since 2.0.0531 *532 * @param string $tag The HTML script output.533 * @param string $handle The script handle to target.534 * @return string $tag Amended HTML script with our ID attribute appended.535 */536 public function filter_api_script( $tag, $handle ) {537 538 // If the handle is not ours, do nothing.539 if ( $this->base->plugin_slug . '-api-script' !== $handle ) {540 return $tag;541 }542 543 // Adjust the output to add our custom script ID.544 return str_replace(545 ' src',546 sprintf(547 ' data-account="56690" data-user="50374" async %s src',548 defined( 'OPTINMONSTER_ENV' ) ? 'data-env="' . OPTINMONSTER_ENV . '"' : ''549 ),550 $tag551 );552 537 } 553 538 … … 579 564 } 580 565 566 /** 567 * Determine if a page should have a "new" badge. 568 * 569 * @param array $page The page data. 570 * 571 * @return boolean True if the given page should have a new badge 572 */ 573 public function maybe_add_new_badge( $page ) { 574 if ( empty( $page['new_badge_period']['start'] ) ) { 575 return false; 576 } 577 578 $now = new DateTime( 'now', new DateTimeZone( 'America/New_York' ) ); 579 580 return OMAPI_Utils::date_within( 581 $now, 582 $page['new_badge_period']['start'], 583 $page['new_badge_period']['end'] 584 ); 585 } 586 581 587 } -
optinmonster/trunk/OMAPI/RestApi.php
r2784339 r2859273 68 68 'info', 69 69 array( 70 'methods' => 'GET',70 'methods' => WP_REST_Server::READABLE, 71 71 'permission_callback' => array( $this, 'logged_in_or_has_api_key' ), 72 72 'callback' => array( $this, 'output_info' ), … … 79 79 'support', 80 80 array( 81 'methods' => 'GET',81 'methods' => WP_REST_Server::READABLE, 82 82 'permission_callback' => array( $this, 'logged_in_or_has_api_key' ), 83 83 'callback' => array( $this, 'support_info' ), … … 90 90 'support/debug/enable', 91 91 array( 92 'methods' => 'GET',92 'methods' => WP_REST_Server::READABLE, 93 93 'permission_callback' => array( $this, 'logged_in_or_has_api_key' ), 94 94 'callback' => array( $this, 'rule_debug_enable' ), … … 99 99 'support/debug/disable', 100 100 array( 101 'methods' => 'GET',101 'methods' => WP_REST_Server::READABLE, 102 102 'permission_callback' => array( $this, 'logged_in_or_has_api_key' ), 103 103 'callback' => array( $this, 'rule_debug_disable' ), … … 110 110 'me', 111 111 array( 112 'methods' => 'GET',112 'methods' => WP_REST_Server::READABLE, 113 113 'permission_callback' => array( $this, 'logged_in_and_can_access_route' ), 114 114 'callback' => array( $this, 'get_me' ), … … 121 121 'campaigns/refresh', 122 122 array( 123 'methods' => 'POST',123 'methods' => WP_REST_Server::CREATABLE, 124 124 'permission_callback' => array( $this, 'logged_in_and_can_access_route' ), 125 125 'callback' => array( $this, 'refresh_campaigns' ), … … 132 132 'campaigns/(?P<id>\w+)', 133 133 array( 134 'methods' => 'GET',134 'methods' => WP_REST_Server::READABLE, 135 135 'permission_callback' => array( $this, 'logged_in_and_can_access_route' ), 136 136 'callback' => array( $this, 'get_campaign_data' ), … … 143 143 'campaigns/(?P<id>\w+)', 144 144 array( 145 'methods' => 'POST',145 'methods' => WP_REST_Server::CREATABLE, 146 146 'permission_callback' => array( $this, 'logged_in_and_can_access_route' ), 147 147 'callback' => array( $this, 'update_campaign_data' ), … … 154 154 'campaigns/(?P<id>[\w-]+)/sync', 155 155 array( 156 'methods' => 'POST',156 'methods' => WP_REST_Server::CREATABLE, 157 157 'permission_callback' => array( $this, 'logged_in_or_has_api_key' ), 158 158 'callback' => array( $this, 'sync_campaign' ), … … 165 165 'resources', 166 166 array( 167 'methods' => 'GET',167 'methods' => WP_REST_Server::READABLE, 168 168 'permission_callback' => array( $this, 'logged_in_and_can_access_route' ), 169 169 'callback' => array( $this, 'get_wp_resources' ), … … 175 175 'notifications', 176 176 array( 177 'methods' => 'GET',177 'methods' => WP_REST_Server::READABLE, 178 178 'permission_callback' => array( $this, 'logged_in_and_can_access_route' ), 179 179 'callback' => array( $this, 'get_notifications' ), … … 185 185 'notifications/dismiss', 186 186 array( 187 'methods' => 'POST',187 'methods' => WP_REST_Server::CREATABLE, 188 188 'permission_callback' => array( $this, 'logged_in_and_can_access_route' ), 189 189 'callback' => array( $this, 'dismiss_notification' ), … … 195 195 'notifications/create', 196 196 array( 197 'methods' => 'POST',197 'methods' => WP_REST_Server::CREATABLE, 198 198 'permission_callback' => array( $this, 'logged_in_and_can_access_route' ), 199 199 'callback' => array( $this, 'create_event_notification' ), … … 205 205 'plugins', 206 206 array( 207 'methods' => 'GET',207 'methods' => WP_REST_Server::READABLE, 208 208 'permission_callback' => array( $this, 'logged_in_and_can_access_route' ), 209 209 'callback' => array( $this, 'get_am_plugins_list' ), … … 215 215 'plugins', 216 216 array( 217 'methods' => 'POST',217 'methods' => WP_REST_Server::CREATABLE, 218 218 'permission_callback' => array( $this, 'logged_in_and_can_access_route' ), 219 219 'callback' => array( $this, 'handle_plugin_action' ), … … 225 225 'api', 226 226 array( 227 'methods' => 'POST',227 'methods' => WP_REST_Server::CREATABLE, 228 228 'permission_callback' => array( $this, 'can_store_api_key' ), 229 229 'callback' => array( $this, 'init_api_key_connection' ), … … 237 237 'api/regenerate', 238 238 array( 239 'methods' => 'POST',239 'methods' => WP_REST_Server::CREATABLE, 240 240 'permission_callback' => array( $this, 'can_store_regenerated_api_key' ), 241 241 'callback' => array( $this, 'store_regenerated_api_key' ), … … 248 248 'api', 249 249 array( 250 'methods' => 'DELETE',250 'methods' => WP_REST_Server::DELETABLE, 251 251 'permission_callback' => array( $this, 'can_delete_api_key' ), 252 252 'callback' => array( $this, 'disconnect' ), … … 258 258 'settings', 259 259 array( 260 'methods' => 'GET',260 'methods' => WP_REST_Server::READABLE, 261 261 'permission_callback' => array( $this, 'logged_in_and_can_access_route' ), 262 262 'callback' => array( $this, 'get_settings' ), … … 268 268 'settings', 269 269 array( 270 'methods' => 'POST',270 'methods' => WP_REST_Server::CREATABLE, 271 271 'permission_callback' => array( $this, 'can_update_settings' ), 272 272 'callback' => array( $this, 'update_settings' ), … … 278 278 'review/dismiss', 279 279 array( 280 'methods' => 'POST',280 'methods' => WP_REST_Server::CREATABLE, 281 281 'permission_callback' => array( $this, 'can_dismiss_review' ), 282 282 'callback' => array( $this, 'dismiss_review' ), … … 288 288 'omu/courses', 289 289 array( 290 'methods' => 'GET',290 'methods' => WP_REST_Server::READABLE, 291 291 'permission_callback' => array( $this, 'logged_in_or_has_api_key' ), 292 292 'callback' => array( $this, 'get_courses' ), … … 298 298 'omu/guides', 299 299 array( 300 'methods' => 'GET',300 'methods' => WP_REST_Server::READABLE, 301 301 'permission_callback' => array( $this, 'logged_in_or_has_api_key' ), 302 302 'callback' => array( $this, 'get_guides' ), … … 308 308 'account/sync', 309 309 array( 310 'methods' => 'POST',310 'methods' => WP_REST_Server::CREATABLE, 311 311 'permission_callback' => array( $this, 'logged_in_or_has_api_key' ), 312 312 'callback' => array( $this, 'sync_account' ), -
optinmonster/trunk/OMAPI/Urls.php
r2812343 r2859273 58 58 public static function templates( $args = array() ) { 59 59 return self::om_admin( 'templates', $args ); 60 } 61 62 /** 63 * Get the playbooks url. 64 * 65 * @since 2.12.0 66 * 67 * @param array $args Array of query args. 68 * 69 * @return string 70 */ 71 public static function playbooks( $args = array() ) { 72 return self::om_admin( 'playbooks', $args ); 60 73 } 61 74 -
optinmonster/trunk/OMAPI/WPForms/RestApi.php
r2769517 r2859273 31 31 'wpforms/forms', 32 32 array( 33 'methods' => 'GET',33 'methods' => WP_REST_Server::READABLE, 34 34 'permission_callback' => array( $this, 'logged_in_or_has_api_key' ), 35 35 'callback' => array( $this, 'forms' ), -
optinmonster/trunk/OMAPI/WooCommerce.php
r2784339 r2859273 744 744 return array(); 745 745 } 746 747 // Initialize the cart. 748 wc_load_cart(); 746 749 747 750 // Bail if we don't have a cart object. -
optinmonster/trunk/OMAPI/WooCommerce/RestApi.php
r2758201 r2859273 32 32 'woocommerce/autogenerate', 33 33 array( 34 'methods' => 'POST',34 'methods' => WP_REST_Server::CREATABLE, 35 35 'permission_callback' => array( $this, 'can_update_settings' ), 36 36 'callback' => array( $this, 'autogenerate' ), … … 42 42 'woocommerce/save', 43 43 array( 44 'methods' => 'POST',44 'methods' => WP_REST_Server::CREATABLE, 45 45 'permission_callback' => array( $this, 'can_update_settings' ), 46 46 'callback' => array( $this, 'save' ), … … 52 52 'woocommerce/disconnect', 53 53 array( 54 'methods' => 'POST',54 'methods' => WP_REST_Server::CREATABLE, 55 55 'permission_callback' => array( $this, 'can_update_settings' ), 56 56 'callback' => array( $this, 'disconnect' ), … … 62 62 'woocommerce/key', 63 63 array( 64 'methods' => 'GET',64 'methods' => WP_REST_Server::READABLE, 65 65 'permission_callback' => array( $this, 'logged_in_and_can_access_route' ), 66 66 'callback' => array( $this, 'get_key' ), 67 ) 68 ); 69 70 register_rest_route( 71 $this->namespace, 72 'woocommerce/display-rules', 73 array( 74 'methods' => WP_REST_Server::READABLE, 75 'permission_callback' => '__return_true', 76 'callback' => array( $this, 'get_display_rules_info' ), 67 77 ) 68 78 ); … … 250 260 } 251 261 } 262 263 /** 264 * Retrieves the WooCommerce cart data for display rules. 265 * 266 * Route: GET omapp/v1/woocommerce/display-rules 267 * 268 * @since 2.12.0 269 * 270 * @param WP_REST_Request $request The REST Request. 271 * 272 * @return WP_REST_Response The API Response 273 */ 274 public function get_display_rules_info( $request ) { 275 return new WP_REST_Response( 276 $this->base->woocommerce->get_cart(), 277 200 278 ); 279 } 252 280 } -
optinmonster/trunk/assets/dist/css/common.min.css
r2850643 r2859273 1 .om-notifications-count{position:relative}.omapi-box{margin:30px 30px;padding:30px;background:#fff;border:1px solid #ddd;line-height:2}.omapi-box--flex{display:flex;flex-wrap:wrap}.omapi-box__half{width:50%;min-width:400px}.omapi-box__image{width:100%}.omapi-box__image img{display:block;width:400px;margin:0 auto;border-radius:5px}.omapi-box__image-subtitle{margin-top:10px;line-height:1.3;color:#41495b;text-align:center}.omapi-screen #wpcontent{padding:0 0 40px}.omapi-screen .omapi-static-banner{background:#0d82df;height:80px;line-height:1;margin-left:-20px}.omapi-static-banner .logo-wrapper{padding:12px 0;line-height:1;display:inline-block}.omapi-static-banner .omapi-svg-logo{height:24px;width:159px}.omapi-static-banner .inner-container{height:80px;padding:0 40px;display:flex;align-items:center;justify-content:space-between}.omapi-plugin-banner{background-color:#087ce1;display:flex;align-items:center;height:74px}.omapi-plugin-banner__wrapper{padding:22px 40px;display:flex;justify-content:space-between;align-items:center;width:100%}.omapi-plugin-banner__logo{display:flex;align-items:flex-end;color:#fff}.omapi-plugin-banner__logo img{width:164px;margin-right:13px}.omapi-plugin-banner__page{font-size:18px;line-height:130%}.omapi-plugin-banner__icons{display:flex;margin:0}.omapi-plugin-banner__icons>li{margin:0}.omapi-plugin-banner__icons>li>a,.omapi-plugin-banner__icons>li>button{color:#fff}.omapi-plugin-banner__icon{margin:0 0 0 20px;cursor:pointer}.logo-wrapper span.omapi-logo-version{color:#fff;vertical-align:middle;margin-bottom:10px;margin-left:5px;display:inline-block}.omapi-app #wpbody-content>.notice{margin:15px 40px 5px}.omapi-screen .static-menu{float:right}.omapi-screen .static-menu>ul{display:flex;align-items:center;justify-content:center;margin:0;padding:0}.omapi-screen .static-menu>ul>li{margin:0;padding:0}.omapi-screen .static-menu>ul>li .static-menu-item{cursor:pointer;text-decoration:none;color:#fff;font-size:13px;font-weight:400;letter-spacing:.04em;padding:13px;padding:9px;margin:4px;display:block}.omapi-screen .static-menu>ul>li .static-menu-item:focus{outline:0;box-shadow:0px 0px 12px rgba(255,255,255,.32)}.omapi-screen .static-menu>ul>li .static-menu-item:focus>*{outline:0;box-shadow:none}.unbutton{-webkit-appearance:none;border:inherit;padding:inherit;background-color:inherit;width:inherit;color:inherit}.om-archie-loading{display:flex;align-items:center;justify-content:center;margin-top:50px}.om-archie-loading svg{max-width:200px}.om-archie-loading circle{animation:2s linear infinite circle-animation;display:block;fill:rgba(0,0,0,0);stroke:#858b98;stroke-dasharray:157;stroke-width:2;transform-origin:50% 50%}@keyframes circle-animation{0%{stroke-dashoffset:33;transform:rotate(0deg)}50%{stroke-dashoffset:157;transform:rotate(720deg)}100%{stroke-dashoffset:33;transform:rotate(1080deg)}}.om-circle-loading{background:url(../../css/images/icons/loading-circle.svg) no-repeat center;background-size:60px;height:60px;margin:20px}.transitioning{background:url(../../css/images/icons/loading-circle.svg) no-repeat center 100px;background-size:60px}.transitioning>*{transition:opacity .2s;opacity:0} 1 .om-notifications-count{position:relative}.omapi-box{margin:30px 30px;padding:30px;background:#fff;border:1px solid #ddd;line-height:2}.omapi-box--flex{display:flex;flex-wrap:wrap}.omapi-box__half{width:50%;min-width:400px}.omapi-box__image{width:100%}.omapi-box__image img{display:block;width:400px;margin:0 auto;border-radius:5px}.omapi-box__image-subtitle{margin-top:10px;line-height:1.3;color:#41495b;text-align:center}.omapi-screen #wpcontent{padding:0 0 40px}.omapi-screen .omapi-static-banner{background:#0d82df;height:80px;line-height:1;margin-left:-20px}.omapi-static-banner .logo-wrapper{padding:12px 0;line-height:1;display:inline-block}.omapi-static-banner .omapi-svg-logo{height:24px;width:159px}.omapi-static-banner .inner-container{height:80px;padding:0 40px;display:flex;align-items:center;justify-content:space-between}.omapi-plugin-banner{background-color:#087ce1;display:flex;align-items:center;height:74px}.omapi-plugin-banner__wrapper{padding:22px 40px;display:flex;justify-content:space-between;align-items:center;width:100%}.omapi-plugin-banner__logo{display:flex;align-items:flex-end;color:#fff}.omapi-plugin-banner__logo img{width:164px;margin-right:13px}.omapi-plugin-banner__page{font-size:18px;line-height:130%}.omapi-plugin-banner__icons{display:flex;margin:0}.omapi-plugin-banner__icons>li{margin:0}.omapi-plugin-banner__icons>li>a,.omapi-plugin-banner__icons>li>button{color:#fff}.omapi-plugin-banner__icon{margin:0 0 0 20px;cursor:pointer}.logo-wrapper span.omapi-logo-version{color:#fff;vertical-align:middle;margin-bottom:10px;margin-left:5px;display:inline-block}.omapi-app #wpbody-content>.notice{margin:15px 40px 5px}.omapi-screen .static-menu{float:right}.omapi-screen .static-menu>ul{display:flex;align-items:center;justify-content:center;margin:0;padding:0}.omapi-screen .static-menu>ul>li{margin:0;padding:0}.omapi-screen .static-menu>ul>li .static-menu-item{cursor:pointer;text-decoration:none;color:#fff;font-size:13px;font-weight:400;letter-spacing:.04em;padding:13px;padding:9px;margin:4px;display:block}.omapi-screen .static-menu>ul>li .static-menu-item:focus{outline:0;box-shadow:0px 0px 12px rgba(255,255,255,.32)}.omapi-screen .static-menu>ul>li .static-menu-item:focus>*{outline:0;box-shadow:none}.unbutton{-webkit-appearance:none;border:inherit;padding:inherit;background-color:inherit;width:inherit;color:inherit}.om-archie-loading{display:flex;align-items:center;justify-content:center;margin-top:50px}.om-archie-loading svg{max-width:200px}.om-archie-loading circle{animation:2s linear infinite circle-animation;display:block;fill:rgba(0,0,0,0);stroke:#858b98;stroke-dasharray:157;stroke-width:2;transform-origin:50% 50%}@keyframes circle-animation{0%{stroke-dashoffset:33;transform:rotate(0deg)}50%{stroke-dashoffset:157;transform:rotate(720deg)}100%{stroke-dashoffset:33;transform:rotate(1080deg)}}.om-circle-loading{background:url(../../css/images/icons/loading-circle.svg) no-repeat center;background-size:60px;height:60px;margin:20px}.transitioning{background:url(../../css/images/icons/loading-circle.svg) no-repeat center 100px;background-size:60px}.transitioning>*{transition:opacity .2s;opacity:0}.omapi-menu-new{background:#3fa548;color:#fff;font-size:10px;border-radius:3px;padding:3px;text-transform:uppercase} -
optinmonster/trunk/optin-monster-wp-api.php
r2850643 r2859273 6 6 * Author: OptinMonster Popup Builder Team 7 7 * Author URI: https://optinmonster.com 8 * Version: 2.1 1.28 * Version: 2.12.0 9 9 * Text Domain: optin-monster-api 10 10 * Domain Path: languages … … 67 67 * @var string 68 68 */ 69 public $version = '2.1 1.2';69 public $version = '2.12.0'; 70 70 71 71 /** -
optinmonster/trunk/readme.txt
r2850643 r2859273 5 5 Tested up to: 6.1 6 6 Requires PHP: 5.3 7 Stable tag: 2.1 1.27 Stable tag: 2.12.0 8 8 License: GNU General Public License v2.0 or later 9 9 … … 462 462 **Most Recent Changes:** 463 463 464 = Popup Builder 2.12.0 = 465 * Fixed wp_enqueue_script error on widgets page. 466 * Addresses issues with page caching by fetching rules data for Easy Digital Downloads and WooCommerce via ajax. 467 * Small improvements to onbaording 468 * Updated bundled version of Vue and related dependencies to address some security scanners. 469 * Introduced Playbooks to the plugin 470 464 471 = Popup Builder 2.11.2 = 465 472 * Fixed issue where plain-text shortcode output could be parsed by search engines. -
optinmonster/trunk/vue/dist/manifest.json
r2850643 r2859273 1 1 { 2 "about.css": "/css/about. d1485509.css",3 "about.js": "/js/about. 19b960a9.js",4 "about.js.map": "/js/about. 19b960a9.js.map",5 "app.js": "/wp-om-app- 41fa8fcc.js",6 "app.js.map": "/wp-om-app- 41fa8fcc.js.map",7 "campaign-edit.css": "/css/campaign-edit. 197e7e3a.css",8 "campaign-edit.js": "/js/campaign-edit. 0984a155.js",9 "campaign-edit.js.map": "/js/campaign-edit. 0984a155.js.map",10 "campaigns.css": "/css/campaigns. 89824908.css",11 "campaigns.js": "/js/campaigns. 1c033ca2.js",12 "campaigns.js.map": "/js/campaigns. 1c033ca2.js.map",13 "common.css": "/css/common.6 ac52745.css",14 "common.js": "/js/common. 04b0dc70.js",15 "common.js.map": "/js/common. 04b0dc70.js.map",16 "connect.js": "/js/connect. b5da6291.js",17 "connect.js.map": "/js/connect. b5da6291.js.map",18 "dashboard.css": "/css/dashboard. ce24d1b7.css",19 "dashboard.js": "/js/dashboard. 75020e53.js",20 "dashboard.js.map": "/js/dashboard. 75020e53.js.map",2 "about.css": "/css/about.573e0e35.css", 3 "about.js": "/js/about.e510c43b.js", 4 "about.js.map": "/js/about.e510c43b.js.map", 5 "app.js": "/wp-om-app-89571f61.js", 6 "app.js.map": "/wp-om-app-89571f61.js.map", 7 "campaign-edit.css": "/css/campaign-edit.c5102a65.css", 8 "campaign-edit.js": "/js/campaign-edit.62fbd055.js", 9 "campaign-edit.js.map": "/js/campaign-edit.62fbd055.js.map", 10 "campaigns.css": "/css/campaigns.e713cf50.css", 11 "campaigns.js": "/js/campaigns.97db78bd.js", 12 "campaigns.js.map": "/js/campaigns.97db78bd.js.map", 13 "common.css": "/css/common.63e3f1f4.css", 14 "common.js": "/js/common.55ca48a3.js", 15 "common.js.map": "/js/common.55ca48a3.js.map", 16 "connect.js": "/js/connect.4ec4c163.js", 17 "connect.js.map": "/js/connect.4ec4c163.js.map", 18 "dashboard.css": "/css/dashboard.06f1c35c.css", 19 "dashboard.js": "/js/dashboard.37c334cd.js", 20 "dashboard.js.map": "/js/dashboard.37c334cd.js.map", 21 21 "fonts/element-icons.ttf": "/fonts/element-icons.732389de.ttf", 22 22 "fonts/element-icons.woff": "/fonts/element-icons.535877f5.woff", … … 80 80 "img/outbound.svg": "/img/outbound.753654a1.svg", 81 81 "img/play-icon.svg": "/img/play-icon.5eacb21c.svg", 82 "img/playbooks-limit-exceeded.png": "/img/playbooks-limit-exceeded.920b9499.png", 82 83 "img/popup-icon.svg": "/img/popup-icon.e4f71c68.svg", 83 84 "img/rating.svg": "/img/rating.9d148e32.svg", … … 101 102 "img/white-right-arrow.svg": "/img/white-right-arrow.1fd68bed.svg", 102 103 "img/youtube.svg": "/img/youtube.202220b6.svg", 103 "integrations.css": "/css/integrations.2586b596.css", 104 "integrations.js": "/js/integrations.a7ee0b3d.js", 105 "integrations.js.map": "/js/integrations.a7ee0b3d.js.map", 106 "monsterleads.css": "/css/monsterleads.9b6ec4a2.css", 107 "monsterleads.js": "/js/monsterleads.4d8ff778.js", 108 "monsterleads.js.map": "/js/monsterleads.4d8ff778.js.map", 109 "onboarding-wizard.css": "/css/onboarding-wizard.ffcaae7a.css", 110 "onboarding-wizard.js": "/js/onboarding-wizard.e8d159cc.js", 111 "onboarding-wizard.js.map": "/js/onboarding-wizard.e8d159cc.js.map", 112 "personalization.css": "/css/personalization.614363ee.css", 113 "personalization.js": "/js/personalization.c4768d9a.js", 114 "personalization.js.map": "/js/personalization.c4768d9a.js.map", 115 "settings.css": "/css/settings.4837c79a.css", 116 "settings.js": "/js/settings.0d39014a.js", 117 "settings.js.map": "/js/settings.0d39014a.js.map", 118 "temp.css": "/css/temp.0966b502.css", 119 "temp.js": "/js/temp.6b209a61.js", 120 "temp.js.map": "/js/temp.6b209a61.js.map", 121 "templates.css": "/css/templates.6e00bef5.css", 122 "templates.js": "/js/templates.a582635c.js", 123 "templates.js.map": "/js/templates.a582635c.js.map", 124 "university.css": "/css/university.1087f89c.css", 125 "university.js": "/js/university.61cb62e6.js", 126 "university.js.map": "/js/university.61cb62e6.js.map" 104 "integrations.css": "/css/integrations.c2747832.css", 105 "integrations.js": "/js/integrations.e1c95980.js", 106 "integrations.js.map": "/js/integrations.e1c95980.js.map", 107 "monsterleads.css": "/css/monsterleads.70434c02.css", 108 "monsterleads.js": "/js/monsterleads.b674494b.js", 109 "monsterleads.js.map": "/js/monsterleads.b674494b.js.map", 110 "onboarding-wizard.css": "/css/onboarding-wizard.6e7013f7.css", 111 "onboarding-wizard.js": "/js/onboarding-wizard.2be40ddc.js", 112 "onboarding-wizard.js.map": "/js/onboarding-wizard.2be40ddc.js.map", 113 "personalization.css": "/css/personalization.2ddffe3b.css", 114 "personalization.js": "/js/personalization.4ba09eec.js", 115 "personalization.js.map": "/js/personalization.4ba09eec.js.map", 116 "playbooks.css": "/css/playbooks.49ce5d72.css", 117 "playbooks.js": "/js/playbooks.a4164f53.js", 118 "playbooks.js.map": "/js/playbooks.a4164f53.js.map", 119 "settings.css": "/css/settings.87112f6a.css", 120 "settings.js": "/js/settings.1365eaca.js", 121 "settings.js.map": "/js/settings.1365eaca.js.map", 122 "temp.css": "/css/temp.6c2fb77b.css", 123 "temp.js": "/js/temp.98183d2c.js", 124 "temp.js.map": "/js/temp.98183d2c.js.map", 125 "templates.css": "/css/templates.9c7f8497.css", 126 "templates.js": "/js/templates.eaea8ca9.js", 127 "templates.js.map": "/js/templates.eaea8ca9.js.map", 128 "university.css": "/css/university.cbb2a098.css", 129 "university.js": "/js/university.d4db1e47.js", 130 "university.js.map": "/js/university.d4db1e47.js.map" 127 131 }
Note: See TracChangeset
for help on using the changeset viewer.