Plugin Directory

Changeset 2863427


Ignore:
Timestamp:
02/10/2023 07:30:54 PM (3 years ago)
Author:
jtsternberg
Message:

2.12.2 - 2023-02-10

  • Security update to ensure OptinMonster shortcodes can only load from the campaign post-type.
Location:
optinmonster/trunk
Files:
32 added
32 deleted
8 edited

Legend:

Unmodified
Added
Removed
  • optinmonster/trunk/CHANGELOG.md

    r2859837 r2863427  
    11# Changelog
    22All notable changes to the OptinMonster plugin will be documented in this file.
     3
     4### 2.12.2 - 2023-02-10
     5* Security update to ensure OptinMonster shortcodes can only load from the campaign post-type.
    36
    47### 2.12.1 - 2023-02-03
  • optinmonster/trunk/OMAPI/Output.php

    r2859273 r2863427  
    806806     */
    807807    public function prepare_campaign( $optin ) {
     808        $optin          = $this->base->validate_is_campaign_type( $optin );
    808809        $campaign_embed = ! empty( $optin->post_content )
    809810            ? trim( html_entity_decode( stripslashes( $optin->post_content ), ENT_QUOTES, 'UTF-8' ), '\'' )
  • optinmonster/trunk/OMAPI/Save.php

    r2758201 r2863427  
    230230                'post_content' => $optin->output,
    231231                'post_status'  => $status,
    232                 'post_type'    => 'omapi',
     232                'post_type'    => OMAPI_Type::SLUG,
    233233            )
    234234        );
  • optinmonster/trunk/OMAPI/Shortcodes/Shortcode.php

    r2637603 r2863427  
    261261        $html = $this->base->output->prepare_campaign( $this->campaign );
    262262        if ( ! $html ) {
    263             throw new OMAPI_Shortcodes_Exception( 'Optin opbject missing campaign html in post_content' );
     263            throw new OMAPI_Shortcodes_Exception( 'Optin object missing campaign html in post_content' );
    264264        }
    265265
  • optinmonster/trunk/OMAPI/Type.php

    r2419618 r2863427  
    2020 */
    2121class OMAPI_Type {
     22
     23    /**
     24     * The Post-type slug.
     25     */
     26    const SLUG = 'omapi';
    2227
    2328    /**
     
    8085
    8186        register_post_type(
    82             'omapi',
     87            self::SLUG,
    8388            array(
    8489                'labels'          => apply_filters(
  • optinmonster/trunk/optin-monster-wp-api.php

    r2859837 r2863427  
    66 * Author:      OptinMonster Popup Builder Team
    77 * Author URI:  https://optinmonster.com
    8  * Version:     2.12.1
     8 * Version:     2.12.2
    99 * Text Domain: optin-monster-api
    1010 * Domain Path: languages
     
    6767     * @var string
    6868     */
    69     public $version = '2.12.1';
     69    public $version = '2.12.2';
    7070
    7171    /**
     
    395395     */
    396396    public function get_optin_by_slug( $slug ) {
    397         $optin = get_page_by_path( sanitize_text_field( $slug ), OBJECT, 'omapi' );
     397        $optin = get_page_by_path( sanitize_text_field( $slug ), OBJECT, OMAPI_Type::SLUG );
    398398        return $this->add_campaign_properties( $optin );
    399399    }
     
    409409     */
    410410    public function collect_campaign_data( $campaign ) {
     411        $campaign = $this->validate_is_campaign_type( $campaign );
     412        if ( empty( $campaign ) ) {
     413            return array(
     414                'id'        => '',
     415                'post'      => $campaign,
     416                'type'      => '',
     417                'inline'    => false,
     418                'post_meta' => array(),
     419            );
     420        }
     421
    411422        $meta = array();
    412423        $keys = get_post_meta( $campaign->ID );
     
    457468                    'no_found_rows'          => true,
    458469                    'nopaging'               => true,
    459                     'post_type'              => 'omapi',
     470                    'post_type'              => OMAPI_Type::SLUG,
    460471                    'posts_per_page'         => -1,
    461472                    'update_post_term_cache' => false,
     
    482493     */
    483494    public function add_campaign_properties( $post ) {
    484         if ( ! empty( $post ) ) {
     495        $post = $this->validate_is_campaign_type( $post );
     496        if ( ! empty( $post->ID ) ) {
    485497            $post->campaign_type = get_post_meta( $post->ID, '_omapi_type', true );
    486498            $post->enabled       = ! ! get_post_meta( $post->ID, '_omapi_enabled', true );
     
    489501        return $post;
    490502
     503    }
     504
     505    /**
     506     * Validates post object to ensure our optin post-type.
     507     *
     508     * @since 2.12.2
     509     *
     510     * @param  WP_Post $post The post object to check.
     511     *
     512     * @return WP_Post|null   Null if post-type doesn't match.
     513     */
     514    public function validate_is_campaign_type( $post ) {
     515        if ( ! empty( $post->post_type ) && OMAPI_Type::SLUG !== $post->post_type ) {
     516            $post = null;
     517        }
     518
     519        return $post;
    491520    }
    492521
  • optinmonster/trunk/readme.txt

    r2859837 r2863427  
    55Tested up to: 6.1
    66Requires PHP: 5.3
    7 Stable tag: 2.12.1
     7Stable tag: 2.12.2
    88License: GNU General Public License v2.0 or later
    99
     
    462462**Most Recent Changes:**
    463463
     464= Popup Builder 2.12.2 =
     465* Security update to ensure OptinMonster shortcodes can only load from the campaign post-type.
     466
    464467= Popup Builder 2.12.1 =
    465468* Fixed Template preview button text stuck on "Loading Preview".
  • optinmonster/trunk/vue/dist/manifest.json

    r2859837 r2863427  
    11{
    22    "about.css": "/css/about.573e0e35.css",
    3     "about.js": "/js/about.c0e8a74f.js",
    4     "about.js.map": "/js/about.c0e8a74f.js.map",
    5     "app.js": "/wp-om-app-d9545d29.js",
    6     "app.js.map": "/wp-om-app-d9545d29.js.map",
     3    "about.js": "/js/about.6c40bb27.js",
     4    "about.js.map": "/js/about.6c40bb27.js.map",
     5    "app.js": "/wp-om-app-b78af314.js",
     6    "app.js.map": "/wp-om-app-b78af314.js.map",
    77    "campaign-edit.css": "/css/campaign-edit.c5102a65.css",
    8     "campaign-edit.js": "/js/campaign-edit.60d97d04.js",
    9     "campaign-edit.js.map": "/js/campaign-edit.60d97d04.js.map",
     8    "campaign-edit.js": "/js/campaign-edit.075b1cc0.js",
     9    "campaign-edit.js.map": "/js/campaign-edit.075b1cc0.js.map",
    1010    "campaigns.css": "/css/campaigns.e713cf50.css",
    11     "campaigns.js": "/js/campaigns.718530af.js",
    12     "campaigns.js.map": "/js/campaigns.718530af.js.map",
     11    "campaigns.js": "/js/campaigns.e95ba120.js",
     12    "campaigns.js.map": "/js/campaigns.e95ba120.js.map",
    1313    "common.css": "/css/common.63e3f1f4.css",
    14     "common.js": "/js/common.c005e882.js",
    15     "common.js.map": "/js/common.c005e882.js.map",
    16     "connect.js": "/js/connect.be8c6839.js",
    17     "connect.js.map": "/js/connect.be8c6839.js.map",
     14    "common.js": "/js/common.c0fde8d1.js",
     15    "common.js.map": "/js/common.c0fde8d1.js.map",
     16    "connect.js": "/js/connect.2ee83f61.js",
     17    "connect.js.map": "/js/connect.2ee83f61.js.map",
    1818    "dashboard.css": "/css/dashboard.06f1c35c.css",
    19     "dashboard.js": "/js/dashboard.cc5d482c.js",
    20     "dashboard.js.map": "/js/dashboard.cc5d482c.js.map",
     19    "dashboard.js": "/js/dashboard.18874b93.js",
     20    "dashboard.js.map": "/js/dashboard.18874b93.js.map",
    2121    "fonts/element-icons.ttf": "/fonts/element-icons.732389de.ttf",
    2222    "fonts/element-icons.woff": "/fonts/element-icons.535877f5.woff",
     
    103103    "img/youtube.svg": "/img/youtube.202220b6.svg",
    104104    "integrations.css": "/css/integrations.c2747832.css",
    105     "integrations.js": "/js/integrations.07dee6ea.js",
    106     "integrations.js.map": "/js/integrations.07dee6ea.js.map",
     105    "integrations.js": "/js/integrations.da8b8322.js",
     106    "integrations.js.map": "/js/integrations.da8b8322.js.map",
    107107    "monsterleads.css": "/css/monsterleads.70434c02.css",
    108     "monsterleads.js": "/js/monsterleads.6bc97cd5.js",
    109     "monsterleads.js.map": "/js/monsterleads.6bc97cd5.js.map",
     108    "monsterleads.js": "/js/monsterleads.18c31389.js",
     109    "monsterleads.js.map": "/js/monsterleads.18c31389.js.map",
    110110    "onboarding-wizard.css": "/css/onboarding-wizard.6e7013f7.css",
    111     "onboarding-wizard.js": "/js/onboarding-wizard.6361b4e2.js",
    112     "onboarding-wizard.js.map": "/js/onboarding-wizard.6361b4e2.js.map",
     111    "onboarding-wizard.js": "/js/onboarding-wizard.f7c17fba.js",
     112    "onboarding-wizard.js.map": "/js/onboarding-wizard.f7c17fba.js.map",
    113113    "personalization.css": "/css/personalization.2ddffe3b.css",
    114     "personalization.js": "/js/personalization.512dedff.js",
    115     "personalization.js.map": "/js/personalization.512dedff.js.map",
     114    "personalization.js": "/js/personalization.1018b7bc.js",
     115    "personalization.js.map": "/js/personalization.1018b7bc.js.map",
    116116    "playbooks.css": "/css/playbooks.49ce5d72.css",
    117     "playbooks.js": "/js/playbooks.5de32e0e.js",
    118     "playbooks.js.map": "/js/playbooks.5de32e0e.js.map",
     117    "playbooks.js": "/js/playbooks.47b5a2c8.js",
     118    "playbooks.js.map": "/js/playbooks.47b5a2c8.js.map",
    119119    "settings.css": "/css/settings.87112f6a.css",
    120     "settings.js": "/js/settings.997a94cb.js",
    121     "settings.js.map": "/js/settings.997a94cb.js.map",
     120    "settings.js": "/js/settings.bb78a5ed.js",
     121    "settings.js.map": "/js/settings.bb78a5ed.js.map",
    122122    "temp.css": "/css/temp.6c2fb77b.css",
    123     "temp.js": "/js/temp.1f9d04d7.js",
    124     "temp.js.map": "/js/temp.1f9d04d7.js.map",
     123    "temp.js": "/js/temp.dfe3efb6.js",
     124    "temp.js.map": "/js/temp.dfe3efb6.js.map",
    125125    "templates.css": "/css/templates.9c7f8497.css",
    126     "templates.js": "/js/templates.02dba996.js",
    127     "templates.js.map": "/js/templates.02dba996.js.map",
     126    "templates.js": "/js/templates.7b779062.js",
     127    "templates.js.map": "/js/templates.7b779062.js.map",
    128128    "university.css": "/css/university.cbb2a098.css",
    129     "university.js": "/js/university.8d805941.js",
    130     "university.js.map": "/js/university.8d805941.js.map"
     129    "university.js": "/js/university.e36c11ee.js",
     130    "university.js.map": "/js/university.e36c11ee.js.map"
    131131}
Note: See TracChangeset for help on using the changeset viewer.