Plugin Directory

Changeset 2192435


Ignore:
Timestamp:
11/14/2019 06:02:54 AM (6 years ago)
Author:
thmarx
Message:

release 2.1.0

Location:
experience-manager/trunk
Files:
26 added
5 deleted
13 edited

Legend:

Unmodified
Added
Removed
  • experience-manager/trunk/experience-manager.php

    r2142338 r2192435  
    55  Description: The integration for the experience platform.
    66  Author: Thorsten Marx
    7   Version: 2.0.0
     7  Version: 2.1.0
    88  Author URI: https://wp-digitalexperience.com/
    99  Text Domain: tma-webtools
     
    2323
    2424require_once 'tma-autoload.php';
     25require_once 'includes/tma_functions.php';
    2526require_once 'tma-scripts.php';
    26 require_once 'includes/tma_functions.php';
    2727
    2828add_action('plugins_loaded', 'tma_load_textdomain');
     
    4444    if (\TMA\ExperienceManager\Plugins::getInstance()->elementor()) {
    4545        new \TMA\ExperienceManager\Elementor_Integration();
     46        //new \TMA\ExperienceManager\Elementor_Preview();
    4647    }
    4748    if (\TMA\ExperienceManager\Plugins::getInstance()->popup_maker()) {
     
    5354    if (\TMA\ExperienceManager\Plugins::getInstance()->gutenberg()) {
    5455        new \TMA\ExperienceManager\Gutenberg_Integration();
    55     }
    56 
    57     if (\TMA\ExperienceManager\Plugins::getInstance()->beaverBuilder()) {
    58         new \TMA\ExperienceManager\BeaverBuilder_Integration();
    59         //\TMA\TMA_BeaverBuilderPreview::getInstance()->init();
    6056    }
    6157}
     
    145141    $tma_config['segments'] = tma_exm_get_segments_as_array();
    146142
    147     $request = new TMA\ExperienceManager\TMA_Request();
    148     $response = $request->getSegments(\TMA\ExperienceManager\TMA_Request::getUserID());
    149     tma_exm_log(json_encode($response));
    150     if ($response !== NULL && $response !== FALSE && $response->status === "ok") {
    151         $tma_config['user_segments'] = $response->user->segments;
    152     }
     143    $tma_config['user_segments'] = tma_exm_get_user_segments();
    153144
    154145    $tma_config = apply_filters("tma_config", $tma_config);
  • experience-manager/trunk/includes/backend/segment/class.segment-editor.php

    r2096995 r2192435  
    2525
    2626    public function register() {
    27         add_action('add_meta_boxes', [$this, 'add']);
     27        add_action('add_meta_boxes', [$this, 'add_meta_box']);
    2828        add_action('save_post_tma_segment', [$this, 'save']);
    2929
     
    9191        if (in_array($hook_suffix, array('post.php', 'post-new.php'))) {
    9292            if ($this->isAudience()) {
    93 
    94                 wp_enqueue_script('experience-manager-query-editor_init', TMA_EXPERIENCE_MANAGER_URL . 'assets/query-editor/init.js', array(), "1.2", true);
    95                 wp_enqueue_script('experience-manager-query-editor_1', TMA_EXPERIENCE_MANAGER_URL . 'assets/query-editor/js/1.5939a542.chunk.js', array('experience-manager-query-editor_init'), "1.2", true);
    96                 wp_enqueue_script('experience-manager-query-editor_main', TMA_EXPERIENCE_MANAGER_URL . 'assets/query-editor/js/main.5891b828.chunk.js', array('experience-manager-query-editor_1'), "1.2", true);
    97 
    98                 wp_enqueue_style('experience-manager-query-editor-styles_1', TMA_EXPERIENCE_MANAGER_URL . 'assets/query-editor/css/1.f9d3e7cc.chunk.css', array(), "1.2");
    99                 wp_enqueue_style('experience-manager-query-editor-styles_main', TMA_EXPERIENCE_MANAGER_URL . 'assets/query-editor/css/main.8881f70e.chunk.css', array('experience-manager-query-editor-styles_1'), "1.2");
     93                /*
     94                  wp_enqueue_script('experience-manager-query-editor_init', TMA_EXPERIENCE_MANAGER_URL . 'assets/query-editor/init.js', array(), "1.2", true);
     95                  wp_enqueue_script('experience-manager-query-editor_1', TMA_EXPERIENCE_MANAGER_URL . 'assets/query-editor/js/1.5939a542.chunk.js', array('experience-manager-query-editor_init'), "1.2", true);
     96                  wp_enqueue_script('experience-manager-query-editor_main', TMA_EXPERIENCE_MANAGER_URL . 'assets/query-editor/js/main.5891b828.chunk.js', array('experience-manager-query-editor_1'), "1.2", true);
     97
     98                  wp_enqueue_style('experience-manager-query-editor-styles_1', TMA_EXPERIENCE_MANAGER_URL . 'assets/query-editor/css/1.f9d3e7cc.chunk.css', array(), "1.2");
     99                  wp_enqueue_style('experience-manager-query-editor-styles_main', TMA_EXPERIENCE_MANAGER_URL . 'assets/query-editor/css/main.8881f70e.chunk.css', array('experience-manager-query-editor-styles_1'), "1.2");
     100                 */
     101
     102                wp_enqueue_script ( 'tma-webtools-backend' );
     103                wp_enqueue_style('experience-manager-codemirror-styles', TMA_EXPERIENCE_MANAGER_URL . 'assets/codemirror/codemirror.css', array(), "5.48.4", false);
     104                wp_enqueue_script('experience-manager-codemirror', TMA_EXPERIENCE_MANAGER_URL . 'assets/codemirror/codemirror.js', array(), "5.48.4", false);
     105                wp_enqueue_script('experience-manager-codemirror-javascript', TMA_EXPERIENCE_MANAGER_URL . 'assets/codemirror/mode/javascript/javascript.js', array("experience-manager-codemirror"), "5.48.4", false);
    100106            }
    101107        }
     
    108114
    109115        return $is_enabled;
    110     }
    111 
    112     public function add() {
    113         add_meta_box(
    114                 'tma_segment_editor', // Unique ID
    115                 'Target segment editor', // Box title
    116                 [$this, 'html'], // Content callback, must be of type callable
    117                 SegmentType::$TYPE   // Post type
    118         );
    119116    }
    120117
     
    150147            $siteid = get_option('tma_webtools_option')['webtools_siteid'];
    151148        }
    152         $json_dsl = get_post_meta($post->ID, 'tma_segment_editor', true);
    153 
    154         $translator = new Translator($siteid);
    155 
     149        $dsl = get_post_meta($post->ID, 'tma_segment_editor', true);
     150
     151       
    156152        $post_data = array(
    157153            'name' => $post->post_title,
    158154            'externalId' => $ID,
    159155            'active' => $post->post_status === "publish",
    160             'dsl' => $translator->translate($json_dsl)
     156            'dsl' => $dsl
    161157        );
    162158
     
    242238
    243239    public function save($post_id) {
    244         if (array_key_exists('tma-webtools-segment-editor-value', $_POST)) {
    245             $editor_value = sanitize_textarea_field($_POST['tma-webtools-segment-editor-value']);
     240        if (array_key_exists('exm_audience_editor', $_POST)) {
     241            $editor_value = filter_input(INPUT_POST, 'exm_audience_editor');
     242            //$editor_value = sanitize_textarea_field($_POST['exm_audience_editor']);
    246243            update_post_meta(
    247244                    $post_id,
     
    252249    }
    253250
    254     public static function html($post) {
    255 //      $value = get_post_meta($post->ID, '_wporg_meta_key', true);
     251    public function add_meta_box() {
     252        add_meta_box(
     253                'tma_segment_editor', // Unique ID
     254                'Target segment editor', // Box title
     255                [$this, 'html'], // Content callback, must be of type callable
     256                SegmentType::$TYPE   // Post type
     257        );
     258
     259        add_meta_box(
     260                'tma_segment_editor_help', // Unique ID
     261                'Segment editor help', // Box title
     262                [$this, 'description'], // Content callback, must be of type callable
     263                SegmentType::$TYPE   // Post type
     264        );
     265        add_meta_box(
     266                'tma_segment_editor_categories', // Unique ID
     267                'Categorie Helper', // Box title
     268                [$this, 'categories'], // Content callback, must be of type callable
     269                SegmentType::$TYPE   // Post type
     270        );
     271    }
     272
     273    public function description($post) {
     274        include 'description.php';
     275    }
     276
     277    public function categories($post) {
     278        include 'categories.php';
     279    }
     280
     281    public function html($post) {
    256282        $value = get_post_meta($post->ID, 'tma_segment_editor', true);
    257 
    258         if ($value && $value !== "") {
    259             ?>
    260             <script>
    261                 window.webToolsTargeing = <?php echo $value; ?>
    262             </script>
    263             <?php
    264         }
    265283        ?>
    266         <div id="webtoolsQueryEditor"></div>
     284        <textarea name="exm_audience_editor" id="exm_audience_editor" cols="50" rows="10"><?php if ($value && $value !== "") {
     285            echo $value;
     286        } ?></textarea>
     287        <script type="text/javascript">
     288            CodeMirror.fromTextArea(document.getElementById("exm_audience_editor"), {
     289                lineNumbers: true,
     290                matchBrackets: true,
     291                mode: "javascript"
     292            });
     293        </script>
    267294        <?php
    268295    }
  • experience-manager/trunk/includes/class.plugins.php

    r2096995 r2192435  
    3737    }
    3838
    39     public function beaverBuilder() {
    40         return class_exists('FLBuilder');
    41     }
    42 
    4339    public function popup_maker() {
    4440        return in_array('popup-maker/popup-maker.php', $this->plugins);
  • experience-manager/trunk/includes/class.tma_rest.php

    r2141767 r2192435  
    3030            'callback' => array($this, 'events'),
    3131        ));
     32       
     33        register_rest_route('experience-manager/v1', '/category-path', array(
     34            'methods' => \WP_REST_Server::READABLE,
     35            'callback' => array($this, 'category_path'),
     36        ));
     37    }
     38   
     39    function category_path ($data) {
     40        $result = [];
     41       
     42        $result["path"] = "/" . get_term_parents_list($data['category'], $data['taxonomy'], ["format" => "slug", "link" => false, "inclusive" => true]);
     43       
     44        return $result;
    3245    }
    3346   
     
    6275
    6376        $segments['segments'] = tma_exm_get_segments_as_array();
    64        
    65         $request = new \TMA\ExperienceManager\TMA_Request();
    66         $response = $request->getSegments(\TMA\ExperienceManager\TMA_Request::getUserID());
    67         if ($response !== NULL && $response->status === "ok") {
    68             $segments['user_segments'] = $response->user->segments;
    69         }
     77        $segments['user_segments'] = tma_exp_get_user_segments();
    7078
    7179        return apply_filters("experience-manager/rest/segments", $segments);
  • experience-manager/trunk/includes/frontend/class.shortcode_tma_content.php

    r2096995 r2192435  
    116116        $segments[] = "default";
    117117        if ($response !== NULL) {
    118             if (sizeof($response->user->segments) > 0) {
    119                 $segments = $response->user->segments;
    120             }
     118            $segments = tma_exp_get_user_segments(["default"]);
    121119        }
    122120
  • experience-manager/trunk/includes/modules/ads/advanced/class.advanced_ads.php

    r2096995 r2192435  
    6060        $user_segments = [];
    6161        if ($response !== NULL) {
    62             if (sizeof($response->user->segments) > 0) {
    63                 $user_segments = $response->user->segments;
    64             }
     62            $user_segments = tma_exm_get_user_segments();
    6563        }
    6664
  • experience-manager/trunk/includes/modules/editors/class.integration.php

    r2096995 r2192435  
    120120        $segments = ["default"];
    121121        if ($response !== NULL) {
    122             if (sizeof($response->user->segments) > 0) {
    123                 $segments = $response->user->segments;
    124             }
     122            $segments = tma_exm_get_user_segments(["default"]);
    125123        }
    126124
  • experience-manager/trunk/includes/modules/editors/elementor/class.elementor_integration.php

    r2096995 r2192435  
    3333    }
    3434
    35     function widget_before_render(\Elementor\Element_Base $element) {
    36         tma_exm_log("widget_before_render");
     35    static function getAttributes($element, $in_edit = false) {
     36        $settings = $element->get_settings();
    3737
    38         $settings = $element->get_settings();
    39    
    4038        $attrs = [];
    41         $attrs["data-tma-personalization"] = $this->isActivated($settings) ? "enabled" : "disabled";
     39        $attrs["data-tma-personalization"] = Elementor_Integration::_isActivated($settings) ? "enabled" : "disabled";
    4240        $attrs["data-tma-matching"] = $settings['tma_matching'];
    4341        $attrs["data-tma-group"] = $settings['tma_group'];
     
    4846            $attrs["data-tma-segments"] = $settings['tma_segment'];
    4947        }
    50         if (tma_exm_is_frontend_mode_enabled() && $this->isActivated($settings)) {
    51             if ($settings['tma_default'] === "no") {
    52                 $attrs["class"] = 'tma-hide';
    53             }
    54         } else {
    55             if ($this->is_widget_visible($element) === FALSE) {
    56                 $attrs["class"] = 'tma-hide';
     48        if (!$in_edit) {
     49            if (tma_exm_is_frontend_mode_enabled() && Elementor_Integration::_isActivated($settings)) {
     50                if ($settings['tma_default'] === "no") {
     51                    $attrs["class"] = 'tma-hide';
     52                }
     53            } else {
     54                if ($this->is_widget_visible($element) === FALSE) {
     55                    $attrs["class"] = 'tma-hide';
     56                }
    5757            }
    5858        }
     59
     60
     61        return $attrs;
     62    }
     63
     64    function widget_before_render(\Elementor\Element_Base $element) {
     65        tma_exm_log("widget_before_render");
     66
     67        $attrs = Elementor_Integration::getAttributes($element);
     68
    5969        $element->add_render_attribute('_wrapper', $attrs);
    6070    }
     
    7585    }
    7686
    77     function isActivated($args) {
     87    static function _isActivated($args) {
    7888        return (is_array($args) && !empty($args['tma_personalization']) && $args['tma_personalization'] === "yes");
    7989    }
    8090
     91    function isActivated($args) {
     92        return Elementor_Integration::_isActivated($args);
     93    }
     94   
    8195    protected function isGroupDefault($args) {
    8296        return (is_array($args) && !empty($args['tma_default']) && $args['tma_default'] === "yes");
     
    96110
    97111    function addControls($section, $section_id, $args) {
    98         if (\Elementor\Controls_Manager::TAB_ADVANCED !== $args['tab'] || ( '_section_responsive' !== $section_id /* Section/Widget */ && 'section_responsive' !== $section_id /* Column */ )) {
     112        if (\Elementor\Controls_Manager::TAB_ADVANCED !== $args['tab'] ||
     113                ( '_section_responsive' !== $section_id /* Section/Widget */ && 'section_responsive' !== $section_id /* Column */
     114                )
     115        ) {
    99116            return;
    100117        }
     118
    101119        $section->start_controls_section(
    102120                'tma-webtools', [
    103121            'label' => __('Targeting', 'tma-webtools'),
    104             'tab' => \Elementor\Controls_Manager::TAB_ADVANCED,
     122            'tab' => \Elementor\Controls_Manager::TAB_SETTINGS,
    105123                ]
    106124        );
  • experience-manager/trunk/includes/modules/messages/popup-maker/class.popup-maker.php

    r2096995 r2192435  
    5252        $user_segments = [];
    5353        if ($response !== NULL) {
    54             if (sizeof($response->user->segments) > 0) {
    55                 $user_segments = $response->user->segments;
    56             }
     54            $user_segments = tma_exm_get_user_segments();
    5755        }
    5856
  • experience-manager/trunk/includes/tma_functions.php

    r2096995 r2192435  
    11<?php
     2
     3function tma_exm_get_user_segments ($defaultValue = []) {
     4    $request = new TMA\ExperienceManager\TMA_Request();
     5    $response = $request->getSegments(\TMA\ExperienceManager\TMA_Request::getUserID());
     6    tma_exm_log(json_encode($response));
     7    if ($response !== NULL && $response !== FALSE && $response->status === "ok" && property_exists($response->user, "actionSystem")) {
     8        $tma_config['user_segments'] = $response->user->actionSystem->segments;
     9    }
     10    return $defaultValue;
     11   
     12}
    213
    314function tma_exm_get_segments() {
     
    100111}
    101112
    102 function tma_exm_is_beaver_preview() {
    103     return \TMA\ExperienceManager\Plugins::getInstance()->beaverBuilder() && \FLBuilderModel::is_builder_active();
     113function tma_exm_is_elementor_active () {
     114    return \TMA\ExperienceManager\Plugins::getInstance()->elementor()
     115            && (\Elementor\Plugin::$instance->editor->is_edit_mode() || \Elementor\Plugin::$instance->preview->is_preview_mode());
    104116}
    105117
    106118function tma_exm_is_editor_active() {
    107     if (isset($_GET['action'])  && ($_GET['action'] === 'edit' || $_GET['action'] === 'elementor')) {
    108         tma_exm_log("editor is active gutenberg or elementor");
     119    if (isset($_GET['action'])  && ($_GET['action'] === 'edit')) { // || $_GET['action'] === 'elementor')
     120        tma_exm_log("editor is active gutenberg");
    109121        return true;
    110     } else if(tma_exm_is_beaver_preview()) {
    111         tma_exm_log("editor is active beaver");
     122    } else if (tma_exm_is_elementor_active()) {
     123        tma_exm_log("editor is active elementor");
    112124        return true;
    113125    }
  • experience-manager/trunk/readme.txt

    r2141773 r2192435  
    2121* Segment simulator in the preview
    2222* Support for [Elementor Page Builder](https://elementor.com/)
    23 * Support for [Beaver Page Builder](https://www.wpbeaverbuilder.com/)
    2423* Support For [Gutenberg](https://wordpress.org/gutenberg/)
    2524* Template-Tag to check if a user match a specific segment ( e.q. tma_exm_is_in_segment("a_segment_id"))
     
    67662.1.0
    6867 * Update to new the new tracking url provided by the Experience Platform
     68 * Beaver Builder support removed
    6969
    70 IMPORTANT: If you upgrade to version 2.1.0 you need at least Experience Platform version 3.0.0
     70IMPORTANT: If you upgrade to version 2.1.0 you need at least Experience Platform version 3.3.1
    7171
    72722.0.0
  • experience-manager/trunk/tma-autoload.php

    r2096995 r2192435  
    2525    // Elementor
    2626    "TMA\ExperienceManager\Elementor_Integration" => "includes/modules/editors/elementor/class.elementor_integration.php",
     27    "TMA\ExperienceManager\Elementor_Preview" => "includes/modules/editors/elementor/class.elementor_preview.php",
    2728    // Advanced Ads
    2829    "TMA\ExperienceManager\TMA_AdvancedAdsIntegration" => "includes/modules/ads/advanced/class.advanced_ads.php",
    2930    // Gutenberg
    3031    "TMA\ExperienceManager\Gutenberg_Integration" => "includes/modules/editors/gutenberg/class.gutenberg_integration.php",
    31     // Beaver Builder
    32     "TMA\ExperienceManager\BeaverBuilder_Integration" => "includes/modules/editors/beaver/class.beaverbuilder_integration.php",
    33     "TMA\ExperienceManager\TMA_BeaverBuilderPreview" => "includes/modules/editors/beaver/class.beaverbuilder.preview.php",
    3432   
    3533    // Audience Editor
    3634    "TMA\ExperienceManager\Segment\SegmentType" => "includes/backend/segment/class.segment-type.php",
    3735    "TMA\ExperienceManager\Segment\SegmentEditor" => "includes/backend/segment/class.segment-editor.php",
    38     "TMA\ExperienceManager\Segment\Translator" => "includes/backend/segment/class.translator.php",
    39     // UniRest
    40     /*
    41     "Unirest\Request" => "modules/unirest/Unirest/Request.php",
    42     "Unirest\Response" => "modules/unirest/Unirest/Response.php",
    43     "Unirest\Method" => "modules/unirest/Unirest/Method.php",
    44     "Unirest\Exception" => "modules/unirest/Unirest/Exception.php",
    45     "Unirest\Request\Body" => "modules/unirest/Unirest/Request/Body.php",
    46     */
    4736    // Event Tracking
    4837    "TMA\ExperienceManager\WC_TRACKER" => "includes/modules/events/class.woocommerce_tracker.php",
  • experience-manager/trunk/tma-scripts.php

    r2096995 r2192435  
    44 * enables frontend targeting if cache mode is configured
    55 */
    6 add_action('wp_enqueue_scripts', function () {
     6
     7add_action('admin_enqueue_scripts', "exm_enqueue_script", -99);
     8
     9add_action('wp_enqueue_scripts', "exm_enqueue_script" , -99);
     10
     11
     12function exm_enqueue_script () {
    713    if (tma_exm_is_debug()) {
    814        wp_register_script('webtools-frontend', TMA_EXPERIENCE_MANAGER_URL . 'js/webtools/webtools-frontend.js', array(), "1");
     15        wp_register_script('tma-webtools-backend', TMA_EXPERIENCE_MANAGER_URL . 'js/webtools/webtools-wp-backend.js', array(), "1");
    916    } else {
    1017        wp_register_script('webtools-frontend', TMA_EXPERIENCE_MANAGER_URL . 'js/webtools/webtools-frontend-min.js', array(), "1");
     18        wp_register_script('tma-webtools-backend', TMA_EXPERIENCE_MANAGER_URL . 'js/webtools/webtools-wp-backend-min.js', array(), "1");
    1119    }
    1220
     
    2331        }
    2432    }
    25 }, -99);
     33}
Note: See TracChangeset for help on using the changeset viewer.