public function html($attr, $content)
    {
        global $post;
        global $wp_embed;
        global $sociallocker;
        if (in_array($sociallocker->license->type, array('free'))) {
            echo $content;
            return;
        }
        $id = isset($attr['id']) ? (int) $attr['id'] : $this->getDefaultId();
        if (!empty($id)) {
            $lockerMeta = get_post_meta($id, '');
        }
        if (empty($id) || empty($lockerMeta)) {
            printf(__('<div><strong>[Opt-In Panda] The locker [id=%d] doesn\'t exist or the default lockers were deleted.</strong></div>', 'bizpanda'), $id);
            return;
        }
        // passcode
        if (OPanda_AssetsManager::autoUnlock($id)) {
            echo $content;
            return;
        }
        // runs nested shortcodes
        $content = $wp_embed->autoembed($content);
        $content = do_shortcode($content);
        // - RSS and Members
        // if it's a premium build, check premium features such
        // as RSS feeds and logged in users.
        if (is_feed()) {
            if (get_option('opanda_rss', false)) {
                echo $content;
                return;
            } else {
                return;
            }
        }
        if (is_user_logged_in() && OPanda_AssetsManager::getLockerOption($id, 'hide_for_member', false)) {
            echo '<p>' . $content . '</p>';
            return;
        }
        if (!empty($post) && OPanda_AssetsManager::getLockerOption($id, 'lock_delay', false)) {
            $lockDelayInterval = OPanda_AssetsManager::getLockerOption($id, 'lock_delay_interval_in_seconds');
            $createdTime = get_post_time('U', true, $post);
            $currentTime = time();
            if ($currentTime - $createdTime <= $lockDelayInterval) {
                echo '<p>' . $content . '</p>';
                return;
            }
        }
        // if returns:
        // 'content' - shows the locker content
        // 'nothing' - shows nothing (cut content)
        // 'locker' or other values - shows the locker
        $whatToShow = apply_filters('onp_sl_what_to_show', 'locker', $id);
        if ('content' === $whatToShow) {
            echo $content;
            return;
        }
        if ('nothing' === $whatToShow) {
            return;
        }
        $content = preg_replace('/^<br \\/>/', '', $content);
        $content = preg_replace('/<br \\/>$/', '', $content);
        $lockData = OPanda_AssetsManager::getLockerDataToPrint($id);
        // -
        // use the shortcode attrs if specified instead of configured option
        if (isset($attr['url'])) {
            $lockData['options']['facebook']['like']['url'] = $attr['url'];
            $lockData['options']['facebook']['share']['url'] = $attr['url'];
            $lockData['options']['twitter']['tweet']['url'] = $attr['url'];
            $lockData['options']['google']['plus']['url'] = $attr['url'];
            $lockData['options']['google']['share']['url'] = $attr['url'];
            $lockData['options']['linkedin']['share']['url'] = $attr['url'];
        }
        if (isset($attr['title'])) {
            $lockData['options']['text']['title'] = $attr['title'];
        }
        if (isset($attr['message'])) {
            $lockData['options']['text']['message'] = $attr['message'];
        }
        if (isset($attr['theme'])) {
            $lockData['options']['theme'] = $attr['theme'];
        }
        $isAjax = false;
        $lockData['ajax'] = false;
        // - AJAX
        // if it's a premium build, check is ajax required?
        $contentHash = null;
        if (isset($lockerMeta['opanda_ajax']) && $lockerMeta['opanda_ajax'][0]) {
            if ('full' == OPanda_AssetsManager::getLockerOption($id, 'overlap', false, 'full')) {
                $isAjax = true;
                $ajaxContent = '<p>' . $content . '</p>';
                $lockData['contentHash'] = $contentHash = md5($ajaxContent);
                $lockData['ajax'] = true;
                $metaKey = 'opanda_locker_content_hash_' . $contentHash;
                if (!isset($lockerMeta[$metaKey])) {
                    add_post_meta($id, $metaKey, $ajaxContent, true);
                }
            }
        }
        $dynamicTheme = get_option('opanda_dynamic_theme', 0);
        $this->lockId = "onpLock" . rand(100000, 999999);
        $this->lockData = $lockData;
        $overlap = $lockData['options']['overlap']['mode'];
        $hideContent = $overlap === 'full';
        if ($isAjax) {
            ?>
            <div class="onp-locker-call" style="display: none;" data-lock-id="<?php 
            echo $this->lockId;
            ?>
"></div>
        <?php 
        } else {
            ?>
           
            <div class="onp-locker-call" <?php 
            if ($hideContent) {
                ?>
style="display: none;"<?php 
            }
            ?>
 data-lock-id="<?php 
            echo $this->lockId;
            ?>
">
                <p><?php 
            echo $content;
            ?>
</p>
            </div>
        <?php 
        }
        ?>
 

        <?php 
        if ($dynamicTheme) {
            ?>
            <div class="onp-optinpanda-params" style="display: none;">
                <?php 
            echo json_encode($lockData);
            ?>
            </div>
        <?php 
        } else {
            add_action('wp_footer', array($this, 'wp_footer'), 1);
        }
    }
    public function html($attr, $content)
    {
        global $post;
        global $wp_embed;
        $id = isset($attr['id']) ? (int) $attr['id'] : $this->getDefaultId();
        if (!empty($id)) {
            $lockerMeta = get_post_meta($id, '');
        }
        if (empty($id) || empty($lockerMeta) || empty($lockerMeta['opanda_item'])) {
            printf(__('<div><strong>[Locker] The locker [id=%d] doesn\'t exist or the default lockers were deleted.</strong></div>', 'bizpanda'), $id);
            return;
        }
        // runs nested shortcodes
        $content = $wp_embed->autoembed($content);
        $content = do_shortcode($content);
        // passcode
        if (OPanda_AssetsManager::autoUnlock($id)) {
            echo $content;
            return;
        }
        // if returns:
        // 'content' - shows the locker content
        // 'nothing' - shows nothing (cut content)
        // 'locker' or other values - shows the locker
        $whatToShow = apply_filters('onp_sl_what_to_show', 'locker', $id);
        if ('content' === $whatToShow) {
            echo $content;
            return;
        }
        if ('nothing' === $whatToShow) {
            return;
        }
        $content = preg_replace('/^<br \\/>/', '', $content);
        $content = preg_replace('/<br \\/>$/', '', $content);
        $lockData = OPanda_AssetsManager::getLockerDataToPrint($id);
        // -
        // use the shortcode attrs if specified instead of configured option
        if (isset($attr['url'])) {
            $lockData['options']['facebook']['like']['url'] = $attr['url'];
            $lockData['options']['facebook']['share']['url'] = $attr['url'];
            $lockData['options']['twitter']['tweet']['url'] = $attr['url'];
            $lockData['options']['google']['plus']['url'] = $attr['url'];
            $lockData['options']['google']['share']['url'] = $attr['url'];
            $lockData['options']['linkedin']['share']['url'] = $attr['url'];
        }
        if (isset($attr['title'])) {
            $lockData['options']['text']['title'] = $attr['title'];
        }
        if (isset($attr['message'])) {
            $lockData['options']['text']['message'] = $attr['message'];
        }
        if (isset($attr['theme'])) {
            $lockData['options']['theme'] = $attr['theme'];
        }
        $isAjax = false;
        $lockData['ajax'] = false;
        $dynamicTheme = get_option('opanda_dynamic_theme', 0);
        $this->lockId = "onpLock" . rand(100000, 999999);
        $this->lockData = $lockData;
        $overlap = $lockData['options']['overlap']['mode'];
        $hideContent = $overlap === 'full';
        if ($isAjax) {
            ?>
            <div class="onp-locker-call" style="display: none;" data-lock-id="<?php 
            echo $this->lockId;
            ?>
"></div>
        <?php 
        } else {
            ?>
           
            <div class="onp-locker-call" <?php 
            if ($hideContent) {
                ?>
style="display: none;"<?php 
            }
            ?>
 data-lock-id="<?php 
            echo $this->lockId;
            ?>
">
                <p><?php 
            echo $content;
            ?>
</p>
            </div>
        <?php 
        }
        ?>
 

        <?php 
        if ($dynamicTheme) {
            ?>
            <div class="onp-optinpanda-params" style="display: none;">
                <?php 
            echo json_encode($lockData);
            ?>
            </div>
        <?php 
        } else {
            add_action('wp_footer', array($this, 'wp_footer'), 1);
        }
    }