Carousel, Slider, Gallery by WP Carousel – Image Carousel & Photo Gallery, Post Carousel & Post Grid, Product Carousel & Product Grid for WooCommerce - Version 2.4.4

Version Description

Feb 23, 2022 = * New: Elementor Addons for WP Carousel. * New: The alt tag of the preloader image is added. * Fix: WordPress 5.9 Gutenberg block compatibility issue.

Download this release

Release Info

Developer shapedplugin
Plugin Icon 128x128 Carousel, Slider, Gallery by WP Carousel – Image Carousel & Photo Gallery, Post Carousel & Post Grid, Product Carousel & Product Grid for WooCommerce
Version 2.4.4
Comparing to
See all releases

Code changes from version 2.4.3 to 2.4.4

admin/ElementAddons/Wp_Carousel_Shortcode_Widget.php ADDED
@@ -0,0 +1,146 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Elementor wp carousel shortcode Widget.
4
+ *
5
+ * @since 2.4.1
6
+ */
7
+ class Wp_Carousel_Shortcode_Widget extends \Elementor\Widget_Base {
8
+ /**
9
+ * Get widget name.
10
+ *
11
+ * @since 2.4.1
12
+ * @access public
13
+ *
14
+ * @return string Widget name.
15
+ */
16
+ public function get_name() {
17
+ return 'sp_wp_carousel_shortcode';
18
+ }
19
+
20
+ /**
21
+ * Get widget title.
22
+ *
23
+ * @since 2.4.1
24
+ * @access public
25
+ *
26
+ * @return string Widget title.
27
+ */
28
+ public function get_title() {
29
+ return __( 'WP Carousel Free', 'wp-carousel-Free' );
30
+ }
31
+
32
+ /**
33
+ * Get widget icon.
34
+ *
35
+ * @since 2.4.1
36
+ * @access public
37
+ *
38
+ * @return string Widget icon.
39
+ */
40
+ public function get_icon() {
41
+ return 'icon-wpc-block';
42
+ }
43
+
44
+ /**
45
+ * Get widget categories.
46
+ *
47
+ * @since 2.4.1
48
+ * @access public
49
+ *
50
+ * @return array Widget categories.
51
+ */
52
+ public function get_categories() {
53
+ return array( 'basic' );
54
+ }
55
+
56
+ /**
57
+ * Get all post list.
58
+ *
59
+ * @since 2.4.1
60
+ * @return array
61
+ */
62
+ public function sp_wp_carousel_free_post_list() {
63
+ $post_list = array();
64
+ $sp_wp_carousel_posts = new \WP_Query(
65
+ array(
66
+ 'post_type' => 'sp_wp_carousel',
67
+ 'post_status' => 'publish',
68
+ 'posts_per_page' => 9999,
69
+ )
70
+ );
71
+ $posts = $sp_wp_carousel_posts->posts;
72
+ foreach ( $posts as $post ) {
73
+ $post_list[ $post->ID ] = $post->post_title;
74
+ }
75
+ krsort( $post_list );
76
+ return $post_list;
77
+ }
78
+
79
+ /**
80
+ * Controls register.
81
+ *
82
+ * @return void
83
+ */
84
+ protected function _register_controls() {
85
+ $this->start_controls_section(
86
+ 'content_section',
87
+ array(
88
+ 'label' => __( 'Content', 'wp-carousel-free' ),
89
+ 'tab' => \Elementor\Controls_Manager::TAB_CONTENT,
90
+ )
91
+ );
92
+
93
+ $this->add_control(
94
+ 'sp_wp_carousel_free_shortcode',
95
+ array(
96
+ 'label' => __( 'WP Carousel Shortcode(s)', 'wp-carousel-free' ),
97
+ 'type' => \Elementor\Controls_Manager::SELECT2,
98
+ 'label_block' => true,
99
+ 'default' => '',
100
+ 'options' => $this->sp_wp_carousel_free_post_list(),
101
+ )
102
+ );
103
+
104
+ $this->end_controls_section();
105
+
106
+ }
107
+
108
+ /**
109
+ * Render wp carousel shortcode widget output on the frontend.
110
+ *
111
+ * @since 2.4.1
112
+ * @access protected
113
+ */
114
+ protected function render() {
115
+
116
+ $settings = $this->get_settings_for_display();
117
+ $sp_wp_carousel_shortcode = $settings['sp_wp_carousel_free_shortcode'];
118
+
119
+ if ( '' === $sp_wp_carousel_shortcode ) {
120
+ echo '<div style="text-align: center; margin-top: 0; padding: 10px" class="elementor-add-section-drag-title">Select a shortcode</div>';
121
+ return;
122
+ }
123
+
124
+ $post_id = $sp_wp_carousel_shortcode;
125
+
126
+ if ( \Elementor\Plugin::$instance->editor->is_edit_mode() ) {
127
+ // Preset Layouts.
128
+ $upload_data = get_post_meta( $post_id, 'sp_wpcp_upload_options', true );
129
+ $shortcode_data = get_post_meta( $post_id, 'sp_wpcp_shortcode_options', true );
130
+ $main_section_title = get_the_title( $post_id );
131
+
132
+ WP_Carousel_Free_Shortcode::wpcf_html_show( $upload_data, $shortcode_data, $post_id, $main_section_title );
133
+ ?>
134
+ <script>
135
+ jQuery('#wpcp-preloader-' + <?php echo esc_attr( $post_id ); ?>).animate({ opacity: 0 }, 600).remove();
136
+ jQuery('#sp-wp-carousel-free-id-' + <?php echo esc_attr( $post_id ); ?>).animate({ opacity: 1 }, 600);
137
+ </script>
138
+ <script src="<?php echo esc_url( WPCAROUSELF_URL . 'public/js/wp-carousel-free-public.min.js' ); ?>" ></script>
139
+ <?php
140
+ } else {
141
+ echo do_shortcode( ' [sp_wpcarousel id="' . $post_id . '"]' );
142
+ }
143
+
144
+ }
145
+
146
+ }
admin/GutenbergBlock/build/index.asset.php DELETED
@@ -1 +0,0 @@
1
- <?php return array('dependencies' => array('wp-element', 'wp-escape-html'), 'version' => '7281eec516c5022e7db405b3a61aad80');
 
admin/GutenbergBlock/build/index.js CHANGED
@@ -75,6 +75,16 @@ const DynamicShortcodeInput = _ref => {
75
 
76
  /***/ }),
77
 
 
 
 
 
 
 
 
 
 
 
78
  /***/ "@wordpress/element":
79
  /*!*********************************!*\
80
  !*** external ["wp","element"] ***!
@@ -176,6 +186,9 @@ __webpack_require__.r(__webpack_exports__);
176
  /* harmony import */ var _shortcode_dynamicShortcode__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./shortcode/dynamicShortcode */ "./src/shortcode/dynamicShortcode.js");
177
  /* harmony import */ var _wordpress_escape_html__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/escape-html */ "@wordpress/escape-html");
178
  /* harmony import */ var _wordpress_escape_html__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_escape_html__WEBPACK_IMPORTED_MODULE_3__);
 
 
 
179
 
180
 
181
 
@@ -190,9 +203,6 @@ const {
190
  PanelBody,
191
  PanelRow
192
  } = wp.components;
193
- const {
194
- InspectorControls
195
- } = wp.editor;
196
  const {
197
  Fragment
198
  } = wp.element;
@@ -287,7 +297,7 @@ registerBlockType("sp-wp-carousel-free/shortcode", {
287
  }
288
 
289
  if (!attributes.shortcode || attributes.shortcode == 0) {
290
- return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(Fragment, null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(InspectorControls, null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(PanelBody, {
291
  title: "Select a shortcode"
292
  }, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(PanelRow, null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_shortcode_dynamicShortcode__WEBPACK_IMPORTED_MODULE_2__["default"], {
293
  attributes: attributes,
@@ -307,7 +317,7 @@ registerBlockType("sp-wp-carousel-free/shortcode", {
307
  })));
308
  }
309
 
310
- return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(Fragment, null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(InspectorControls, null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(PanelBody, {
311
  title: "Select a shortcode"
312
  }, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(PanelRow, null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_shortcode_dynamicShortcode__WEBPACK_IMPORTED_MODULE_2__["default"], {
313
  attributes: attributes,
75
 
76
  /***/ }),
77
 
78
+ /***/ "@wordpress/block-editor":
79
+ /*!*************************************!*\
80
+ !*** external ["wp","blockEditor"] ***!
81
+ \*************************************/
82
+ /***/ (function(module) {
83
+
84
+ module.exports = window["wp"]["blockEditor"];
85
+
86
+ /***/ }),
87
+
88
  /***/ "@wordpress/element":
89
  /*!*********************************!*\
90
  !*** external ["wp","element"] ***!
186
  /* harmony import */ var _shortcode_dynamicShortcode__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./shortcode/dynamicShortcode */ "./src/shortcode/dynamicShortcode.js");
187
  /* harmony import */ var _wordpress_escape_html__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/escape-html */ "@wordpress/escape-html");
188
  /* harmony import */ var _wordpress_escape_html__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_escape_html__WEBPACK_IMPORTED_MODULE_3__);
189
+ /* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor");
190
+ /* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__);
191
+
192
 
193
 
194
 
203
  PanelBody,
204
  PanelRow
205
  } = wp.components;
 
 
 
206
  const {
207
  Fragment
208
  } = wp.element;
297
  }
298
 
299
  if (!attributes.shortcode || attributes.shortcode == 0) {
300
+ return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(Fragment, null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.InspectorControls, null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(PanelBody, {
301
  title: "Select a shortcode"
302
  }, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(PanelRow, null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_shortcode_dynamicShortcode__WEBPACK_IMPORTED_MODULE_2__["default"], {
303
  attributes: attributes,
317
  })));
318
  }
319
 
320
+ return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(Fragment, null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.InspectorControls, null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(PanelBody, {
321
  title: "Select a shortcode"
322
  }, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(PanelRow, null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_shortcode_dynamicShortcode__WEBPACK_IMPORTED_MODULE_2__["default"], {
323
  attributes: attributes,
admin/GutenbergBlock/build/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","mappings":"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","sources":["webpack://wp-carousel-free-gutenberg-shortcode-block/./src/shortcode/blockIcon.js","webpack://wp-carousel-free-gutenberg-shortcode-block/./src/shortcode/dynamicShortcode.js","webpack://wp-carousel-free-gutenberg-shortcode-block/external window [\"wp\",\"element\"]","webpack://wp-carousel-free-gutenberg-shortcode-block/external window [\"wp\",\"escapeHtml\"]","webpack://wp-carousel-free-gutenberg-shortcode-block/webpack/bootstrap","webpack://wp-carousel-free-gutenberg-shortcode-block/webpack/runtime/compat get default export","webpack://wp-carousel-free-gutenberg-shortcode-block/webpack/runtime/define property getters","webpack://wp-carousel-free-gutenberg-shortcode-block/webpack/runtime/hasOwnProperty shorthand","webpack://wp-carousel-free-gutenberg-shortcode-block/webpack/runtime/make namespace object","webpack://wp-carousel-free-gutenberg-shortcode-block/./src/index.js"],"sourcesContent":["import { escapeAttribute } from \"@wordpress/escape-html\";\r\nconst el = wp.element.createElement;\r\nconst icons = {};\r\nicons.spwpcfIcon = el('img', {src: escapeAttribute( sp_wp_carousel_free.url + 'admin/GutenbergBlock/src/wp-carousel-icon.svg' )})\r\nexport default icons;","/**\r\n * Shortcode select component.\r\n */\r\n import { escapeAttribute, escapeHTML } from \"@wordpress/escape-html\";\r\n const { __ } = wp.i18n;\r\n const { Fragment } = wp.element;\r\n const el = wp.element.createElement;\r\n \r\n const DynamicShortcodeInput = ( { attributes : { shortcode, shortcodelist}, shortcodeUpdate } ) => (\r\n <Fragment>\r\n {el('div', {className: 'spwpcf-gutenberg-shortcode editor-styles-wrapper'},\r\n el('select', {className: 'spwpcf-shortcode-selector', onChange: e => shortcodeUpdate(e), value: escapeAttribute( shortcode ) },\r\n el('option', {value: escapeAttribute('0')}, escapeHTML( __( '-- Select a shortcode --', 'wp-carousel-free' ))),\r\n shortcodelist.map( shortcode => {\r\n var title = (shortcode.title.length > 35) ? shortcode.title.substring(0,30) + '.... #(' + shortcode.id + ')' : shortcode.title + ' #(' + shortcode.id + ')';\r\n return el('option', {value: escapeAttribute( shortcode.id.toString() ), key: escapeAttribute( shortcode.id.toString() )}, escapeHTML( title ) )\r\n })\r\n )\r\n )}\r\n </Fragment>\r\n );\r\n \r\n export default DynamicShortcodeInput;","module.exports = window[\"wp\"][\"element\"];","module.exports = window[\"wp\"][\"escapeHtml\"];","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import icons from \"./shortcode/blockIcon\";\r\nimport DynamicShortcodeInput from \"./shortcode/dynamicShortcode\";\r\nimport { escapeAttribute, escapeHTML } from \"@wordpress/escape-html\";\r\n\r\nconst { __ } = wp.i18n;\r\nconst { registerBlockType } = wp.blocks;\r\nconst { PanelBody, PanelRow } = wp.components;\r\nconst { InspectorControls } = wp.editor;\r\nconst { Fragment } = wp.element;\r\nconst ServerSideRender = wp.serverSideRender;\r\nconst el = wp.element.createElement;\r\n\r\n/**\r\n * Register: aa Gutenberg Block.\r\n */\r\nregisterBlockType(\"sp-wp-carousel-free/shortcode\", {\r\n title: escapeHTML( __(\"WP Carousel\", \"wp-carousel-free\") ),\r\n description: escapeHTML( __(\r\n \"Use WP Carousel to insert a carousel or gallery in your page.\",\r\n \"wp-carousel-free\"\r\n )),\r\n icon: icons.spwpcfIcon,\r\n category: \"common\",\r\n supports: {\r\n html: true,\r\n },\r\n edit: (props) => {\r\n const { attributes, setAttributes } = props;\r\n \r\n let scriptLoad = ( shortcodeId ) => {\r\n let spwpcfBlockLoaded = false;\r\n let spwpcfBlockLoadedInterval = setInterval(function () {\r\n let uniqId = jQuery(\".wpcp-wrapper-\" + shortcodeId).parents().attr('id');\r\n if (document.getElementById(uniqId)) {\r\n //Actual functions goes here\r\n jQuery.getScript(sp_wp_carousel_free.loadScript);\r\n jQuery('#wpcp-preloader-' + shortcodeId).animate({ opacity: 0 }, 600).remove();\r\n jQuery('#sp-wp-carousel-free-id-' + shortcodeId).animate({ opacity: 1 }, 600);\r\n spwpcfBlockLoaded = true;\r\n uniqId = '';\r\n }\r\n if (spwpcfBlockLoaded) {\r\n clearInterval(spwpcfBlockLoadedInterval);\r\n }\r\n if ( 0 == shortcodeId ) {\r\n clearInterval(spwpcfBlockLoadedInterval);\r\n }\r\n }, 10);\r\n }\r\n\r\n let updateShortcode = ( updateShortcode ) => {\r\n setAttributes({shortcode: escapeAttribute( updateShortcode.target.value )});\r\n }\r\n\r\n let shortcodeUpdate = (e) => {\r\n updateShortcode(e);\r\n let shortcodeId = escapeAttribute( e.target.value );\r\n scriptLoad(shortcodeId);\r\n }\r\n\r\n document.addEventListener('readystatechange', event => {\r\n if (event.target.readyState === \"complete\") {\r\n let shortcodeId = escapeAttribute( attributes.shortcode );\r\n scriptLoad(shortcodeId);\r\n }\r\n });\r\n\r\n if( attributes.preview ) {\r\n return (\r\n el('div', {className: 'spwpcf_shortcode_block_preview_image'},\r\n el('img', { src: escapeAttribute( sp_wp_carousel_free.url + \"admin/GutenbergBlock/src/wpc-block-preview.svg\" )})\r\n )\r\n )\r\n }\r\n\r\n if (attributes.shortcodelist.length === 0 ) {\r\n return (\r\n <Fragment>\r\n {\r\n el('div', {className: 'components-placeholder components-placeholder is-large'}, \r\n el('div', {className: 'components-placeholder__label'}, \r\n el('img', {className: 'block-editor-block-icon', src: escapeAttribute( sp_wp_carousel_free.url + 'admin/GutenbergBlock/src/wp-carousel-icon.svg' )}),\r\n escapeHTML( __(\"WP Carousel\", \"wp-carousel-free\") )\r\n ),\r\n el('div', {className: 'components-placeholder__instructions'}, \r\n escapeHTML( __(\"No shortcode found. \", \"wp-carousel-free\") ),\r\n el('a', {href: escapeAttribute( sp_wp_carousel_free.link )}, \r\n escapeHTML( __(\"Create a shortcode now!\", \"wp-carousel-free\") )\r\n )\r\n )\r\n )\r\n }\r\n </Fragment>\r\n );\r\n }\r\n\r\n if ( ! attributes.shortcode || attributes.shortcode == 0 ) {\r\n return (\r\n <Fragment>\r\n <InspectorControls>\r\n <PanelBody title=\"Select a shortcode\">\r\n <PanelRow>\r\n <DynamicShortcodeInput\r\n attributes={attributes}\r\n shortcodeUpdate={shortcodeUpdate}\r\n />\r\n </PanelRow>\r\n </PanelBody>\r\n </InspectorControls>\r\n {\r\n el('div', {className: 'components-placeholder components-placeholder is-large'}, \r\n el('div', {className: 'components-placeholder__label'},\r\n el('img', { className: 'block-editor-block-icon', src: escapeAttribute( sp_wp_carousel_free.url + \"admin/GutenbergBlock/src/wp-carousel-icon.svg\" )}),\r\n escapeHTML( __(\"WP Carousel\", \"wp-carousel-free\") )\r\n ),\r\n el('div', {className: 'components-placeholder__instructions'}, escapeHTML( __(\"Select a shortcode\", \"wp-carousel-free\") ) ),\r\n <DynamicShortcodeInput\r\n attributes={attributes}\r\n shortcodeUpdate={shortcodeUpdate}\r\n />\r\n )\r\n }\r\n </Fragment>\r\n );\r\n }\r\n\r\n return (\r\n <Fragment>\r\n <InspectorControls>\r\n <PanelBody title=\"Select a shortcode\">\r\n <PanelRow>\r\n <DynamicShortcodeInput\r\n attributes={attributes}\r\n shortcodeUpdate={shortcodeUpdate}\r\n />\r\n </PanelRow>\r\n </PanelBody>\r\n </InspectorControls>\r\n <ServerSideRender block=\"sp-wp-carousel-free/shortcode\" attributes={attributes} />\r\n </Fragment>\r\n );\r\n },\r\n save() {\r\n // Rendering in PHP\r\n return null;\r\n },\r\n});\r\n"],"names":["escapeAttribute","el","wp","element","createElement","icons","spwpcfIcon","src","sp_wp_carousel_free","url","escapeHTML","__","i18n","Fragment","DynamicShortcodeInput","attributes","shortcode","shortcodelist","shortcodeUpdate","className","onChange","e","value","map","title","length","substring","id","toString","key","registerBlockType","blocks","PanelBody","PanelRow","components","InspectorControls","editor","ServerSideRender","serverSideRender","description","icon","category","supports","html","edit","props","setAttributes","scriptLoad","shortcodeId","spwpcfBlockLoaded","spwpcfBlockLoadedInterval","setInterval","uniqId","jQuery","parents","attr","document","getElementById","getScript","loadScript","animate","opacity","remove","clearInterval","updateShortcode","target","addEventListener","event","readyState","preview","href","link","save"],"sourceRoot":""}
 
admin/GutenbergBlock/class-wp-carousel-free-gutenberg-block-init.php CHANGED
@@ -45,7 +45,7 @@ if ( ! class_exists( 'WP_Carousel_Free_Gutenberg_Block_Init' ) ) {
45
  wp_enqueue_script(
46
  'sp-wp-carousel-free-shortcode-block',
47
  plugins_url( '/GutenbergBlock/build/index.js', dirname( __FILE__ ) ),
48
- array( 'jquery', 'wp-blocks', 'wp-i18n', 'wp-element', 'wp-components', 'wp-editor' ),
49
  WPCAROUSELF_VERSION,
50
  true
51
  );
45
  wp_enqueue_script(
46
  'sp-wp-carousel-free-shortcode-block',
47
  plugins_url( '/GutenbergBlock/build/index.js', dirname( __FILE__ ) ),
48
+ array( 'jquery', 'wp-blocks', 'wp-i18n', 'wp-element', 'wp-components' ),
49
  WPCAROUSELF_VERSION,
50
  true
51
  );
admin/class-wp-carousel-free-elementor-block.php ADDED
@@ -0,0 +1,136 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Elementor shortcode block.
4
+ *
5
+ * @since 2.4.1
6
+ * @package WordPress_Carousel_Free
7
+ * @subpackage WordPress_Carousel_Free/admin
8
+ */
9
+ class Wp_Carousel_Free_Element_Shortcode_Block {
10
+ /**
11
+ * Instance
12
+ *
13
+ * @since 2.4.1
14
+ *
15
+ * @access private
16
+ * @static
17
+ *
18
+ * @var Wp_Carousel_Free_Element_Shortcode_Block The single instance of the class.
19
+ */
20
+ private static $_instance = null;
21
+
22
+ /**
23
+ * Instance
24
+ *
25
+ * Ensures only one instance of the class is loaded or can be loaded.
26
+ *
27
+ * @since 2.4.1
28
+ *
29
+ * @access public
30
+ * @static
31
+ *
32
+ * @return Elementor_Test_Extension An instance of the class.
33
+ */
34
+ public static function instance() {
35
+
36
+ if ( is_null( self::$_instance ) ) {
37
+ self::$_instance = new self();
38
+ }
39
+ return self::$_instance;
40
+
41
+ }
42
+
43
+ /**
44
+ * Constructor
45
+ *
46
+ * @since 2.4.1
47
+ *
48
+ * @access public
49
+ */
50
+ public function __construct() {
51
+ $this->suffix = defined( 'WP_DEBUG' ) && WP_DEBUG ? '' : '.min';
52
+ $this->on_plugins_loaded();
53
+ add_action( 'wp_enqueue_scripts', array( $this, 'sp_wp_carousel_free_block_enqueue_scripts' ) );
54
+ add_action( 'elementor/editor/before_enqueue_scripts', array( $this, 'sp_wp_carousel_free_element_block_icon' ) );
55
+ }
56
+
57
+ /**
58
+ * Elementor block icon.
59
+ *
60
+ * @since 2.4.1
61
+ * @return void
62
+ */
63
+ public function sp_wp_carousel_free_element_block_icon() {
64
+ wp_enqueue_style( 'sp_wp_carousel_element_block_icon', WPCAROUSELF_URL . 'admin/css/fontello.css', array(), WPCAROUSELF_VERSION, 'all' );
65
+ }
66
+
67
+ /**
68
+ * Register the JavaScript for the elementor block area.
69
+ *
70
+ * @since 2.4.1
71
+ */
72
+ public function sp_wp_carousel_free_block_enqueue_scripts() {
73
+
74
+ /**
75
+ * An instance of this class should be passed to the run() function
76
+ * defined in carousel_Free_Loader as all of the hooks are defined
77
+ * in that particular class.
78
+ *
79
+ * The carousel_Free_Loader will then create the relationship
80
+ * between the defined hooks and the functions defined in this
81
+ * class.
82
+ */
83
+ wp_enqueue_script( 'wpcf-slick', WPCAROUSELF_URL . 'public/js/slick' . $this->suffix . '.js', array( 'jquery' ), WPCAROUSELF_VERSION, true );
84
+ wp_enqueue_script( 'wpcf-slick-config', WPCAROUSELF_URL . 'public/js/wp-carousel-free-public' . $this->suffix . '.js', array( 'jquery' ), WPCAROUSELF_VERSION, true );
85
+ }
86
+
87
+ /**
88
+ * On Plugins Loaded
89
+ *
90
+ * Checks if Elementor has loaded, and performs some compatibility checks.
91
+ * If All checks pass, inits the plugin.
92
+ *
93
+ * Fired by `plugins_loaded` action hook.
94
+ *
95
+ * @since 2.4.1
96
+ * @access public
97
+ */
98
+ public function on_plugins_loaded() {
99
+ add_action( 'elementor/init', array( $this, 'init' ) );
100
+ }
101
+
102
+ /**
103
+ * Initialize the plugin
104
+ *
105
+ * Load the plugin only after Elementor (and other plugins) are loaded.
106
+ * Load the files required to run the plugin.
107
+ *
108
+ * Fired by `plugins_loaded` action hook.
109
+ *
110
+ * @since 2.4.1
111
+ *
112
+ * @access public
113
+ */
114
+ public function init() {
115
+ // Add Plugin actions.
116
+ add_action( 'elementor/widgets/widgets_registered', array( $this, 'init_widgets' ) );
117
+ }
118
+
119
+ /**
120
+ * Init Widgets
121
+ *
122
+ * Include widgets files and register them
123
+ *
124
+ * @since 2.4.1
125
+ *
126
+ * @access public
127
+ */
128
+ public function init_widgets() {
129
+ // Register widget.
130
+ require_once WPCAROUSELF_PATH . '/admin/ElementAddons/Wp_Carousel_Shortcode_Widget.php';
131
+ \Elementor\Plugin::instance()->widgets_manager->register_widget_type( new Wp_Carousel_Shortcode_Widget() );
132
+ }
133
+
134
+ }
135
+
136
+ Wp_Carousel_Free_Element_Shortcode_Block::instance();
admin/css/fontello.css ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @font-face {
2
+ font-family: 'fontello';
3
+ src: url('../../admin/font/fontello.eot?94386304');
4
+ src: url('../../admin/font/fontello.eot?94386304#iefix') format('embedded-opentype'),
5
+ url('../../admin/font/fontello.woff2?94386304') format('woff2'),
6
+ url('../../admin/font/fontello.woff?94386304') format('woff'),
7
+ url('../../admin/font/fontello.ttf?94386304') format('truetype'),
8
+ url('../../admin/font/fontello.svg?94386304#fontello') format('svg');
9
+ font-weight: normal;
10
+ font-style: normal;
11
+ }
12
+ /* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */
13
+ /* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */
14
+ /*
15
+ @media screen and (-webkit-min-device-pixel-ratio:0) {
16
+ @font-face {
17
+ font-family: 'fontello';
18
+ src: url('../font/fontello.svg?94386304#fontello') format('svg');
19
+ }
20
+ }
21
+ */
22
+ [class^="icon-"]:before, [class*=" icon-"]:before {
23
+ font-family: "fontello";
24
+ font-style: normal;
25
+ font-weight: normal;
26
+ speak: never;
27
+
28
+ display: inline-block;
29
+ text-decoration: inherit;
30
+ width: 1em;
31
+ margin-right: .2em;
32
+ text-align: center;
33
+ /* opacity: .8; */
34
+
35
+ /* For safety - reset parent styles, that can break glyph codes*/
36
+ font-variant: normal;
37
+ text-transform: none;
38
+
39
+ /* fix buttons height, for twitter bootstrap */
40
+ line-height: 1em;
41
+
42
+ /* Animation center compensation - margins should be symmetric */
43
+ /* remove if not needed */
44
+ margin-left: .2em;
45
+
46
+ /* you can be more comfortable with increased icons size */
47
+ /* font-size: 120%; */
48
+
49
+ /* Font smoothing. That was taken from TWBS */
50
+ -webkit-font-smoothing: antialiased;
51
+ -moz-osx-font-smoothing: grayscale;
52
+
53
+ /* Uncomment for 3D effect */
54
+ /* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */
55
+ }
56
+
57
+ .icon-wpc-block:before { content: '\e800'; } /* '' */
admin/font/fontello.eot ADDED
Binary file
admin/font/fontello.svg ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
3
+ <svg xmlns="http://www.w3.org/2000/svg">
4
+ <metadata>Copyright (C) 2021 by original authors @ fontello.com</metadata>
5
+ <defs>
6
+ <font id="fontello" horiz-adv-x="1000" >
7
+ <font-face font-family="fontello" font-weight="400" font-stretch="normal" units-per-em="1000" ascent="850" descent="-150" />
8
+ <missing-glyph horiz-adv-x="1000" />
9
+ <glyph glyph-name="wpc-block" unicode="&#xe800;" d="M1285-150h-1285v1000h1285v-1000z m-1140 145h995v710h-995v-710z m872 336l-149-149c-11-11-28-11-38 0l-25 25c-10 10-10 27 0 37l106 106-106 106c-10 10-10 27 0 37l25 25c10 11 27 11 37 0l150-149c11-11 11-27 0-38z m-749 38l150 149c10 11 27 11 37 0l25-24c10-11 10-27 0-38l-106-106 106-106c10-10 10-27 0-37l-25-25c-10-11-27-11-37 0l-150 149c-10 11-10 27 0 38z" horiz-adv-x="1285" />
10
+ </font>
11
+ </defs>
12
+ </svg>
admin/font/fontello.ttf ADDED
Binary file
admin/font/fontello.woff ADDED
Binary file
admin/font/fontello.woff2 ADDED
Binary file
languages/wp-carousel-free.pot CHANGED
File without changes
public/css/wp-carousel-free-public.css CHANGED
@@ -314,10 +314,12 @@
314
 
315
  .wpcp-carousel-section .slick-prev {
316
  left: 0;
 
317
  }
318
 
319
  .wpcp-carousel-section .slick-next {
320
  right: 0;
 
321
  }
322
 
323
  .wpcp-carousel-section .slick-prev,
@@ -336,7 +338,7 @@
336
  -o-transition: ease all 0.3s;
337
  transition: ease all 0.3s;
338
  margin-top: -15px;
339
- cursor: pointer;
340
  }
341
 
342
  .wpcp-carousel-section.nav-vertical-center {
@@ -357,6 +359,8 @@
357
 
358
  .wpcp-carousel-section.nav-vertical-center .slick-prev {
359
  left: 0;
 
 
360
  }
361
  .wpcp-carousel-section.nav-vertical-center .slick-next,
362
  .wpcp-carousel-section.nav-vertical-center .slick-prev {
314
 
315
  .wpcp-carousel-section .slick-prev {
316
  left: 0;
317
+ right: auto;
318
  }
319
 
320
  .wpcp-carousel-section .slick-next {
321
  right: 0;
322
+ left: auto;
323
  }
324
 
325
  .wpcp-carousel-section .slick-prev,
338
  -o-transition: ease all 0.3s;
339
  transition: ease all 0.3s;
340
  margin-top: -15px;
341
+ cursor: pointer;
342
  }
343
 
344
  .wpcp-carousel-section.nav-vertical-center {
359
 
360
  .wpcp-carousel-section.nav-vertical-center .slick-prev {
361
  left: 0;
362
+ right: auto;
363
+ text-align: left;
364
  }
365
  .wpcp-carousel-section.nav-vertical-center .slick-next,
366
  .wpcp-carousel-section.nav-vertical-center .slick-prev {
public/css/wp-carousel-free-public.min.css CHANGED
@@ -1 +1 @@
1
- .wpcp-carousel-wrapper *{word-break:break-word;word-wrap:break-word;box-sizing:border-box}.wpcp-carousel-section.wpcp-standard:not(.wpcp-preloader){display:none}.wpcp-carousel-section.wpcp-standard.slick-initialized:not(.wpcp-preloader){display:block}.wpcp-carousel-wrapper{position:relative}.wpcp-carousel-section.wpcp-preloader{opacity:0}.wpcp-carousel-preloader{position:absolute;left:0;top:0;height:100%;width:100%;text-align:center;display:flex;align-items:center;justify-content:center}.sp-wpcp-wrapper{margin-bottom:0}.wpcp-carousel-section.wpcp-standard,.wpcp-carousel-section.wpcp-standard .slick-list{overflow:hidden}.wpcp-carousel-section.wpcp-standard{overflow:hidden;padding-right:2px}.wpcp-carousel-section.wpcp-standard.slick-initialized{position:relative}.wpcp-carousel-section .wpcp-single-item{overflow:hidden;display:inline-block;vertical-align:middle;float:none;max-width:100%}.wpcp-all-captions li{list-style:none;margin:0}.wpcp-carousel-section p,.wpcp-carousel-section ul,.wpcp-image-carousel .wpcp-single-item .wpcp-all-captions h2{margin:0}.wpcp-carousel-section.wpcp-video-carousel .wpcp-single-item .wpcp-slide-image{position:relative}.wpcp-carousel-section.wpcp-content-carousel .wpcp-single-item{padding-left:15px;padding-right:15px}.wpcp-carousel-section .wpcp-single-item img[data-lazy]{width:32px}.wpcp-carousel-section .wpcp-single-item img{margin:0 auto;max-width:100%;height:auto;box-shadow:none}.wpcp-carousel-section.wpcp-image-carousel .wpcp-single-item .wpcp-all-captions{padding:10px 20px 15px}.wpcp-carousel-section .wpcp-single-item .wpcp-all-captions .wpcp-image-description{margin:6px 0 0}.wpcp-carousel-section .wpcp-single-item .wpcp-slide-image a:focus{outline:0}.wpcp-carousel-section .slick-slide:focus{outline:0}.wpcp-carousel-section.slick-initialized .slick-slide{margin-right:20px;float:none;display:inline-block;vertical-align:middle}.wpcp-carousel-section .slick-list{margin-right:-20px}.wpcp-carousel-section .wpcp-all-captions a,.wpcp-carousel-section a,.wpcp-carousel-section a:hover{text-decoration:none}.wpcp-post-carousel .wpcp-single-item .wpcp-all-captions{padding:15px 20px 0;overflow:hidden}#poststuff h2,.wpcp-post-carousel .wpcp-single-item .wpcp-all-captions h2{font-size:16px;font-weight:600;margin:0 0 10px}.wpcp-single-item h2 a{color:#444;text-decoration:none}.wpcp-post-carousel .wpcp-single-item .wpcp-all-captions .post-categories{margin:0 0 7px;padding:0;display:block}.wpcp-post-carousel .wpcp-all-captions p{margin-bottom:15px}.wpcp_readmore{border:1px solid;display:inline-block;background:#22afba;margin:0 0 14px;line-height:32px;padding:5px 14px;font-weight:600}.wpcp_readmore,.wpcp_readmore:focus,.wpcp_readmore:hover{color:#fff}.wpcp-single-item .wpcp-all-captions .wpcp-post-meta{margin:0 0 20px;padding:0}.wpcp-post-carousel .wpcp-post-meta li{display:inline-block;margin-right:5px}.wpcp-post-carousel .wpcp-post-meta li:last-child{margin-right:0}.wpcp-post-meta li,.wpcp-post-meta li a{color:#999}.wpcp-carousel-section.detail-on-right .wpcp-single-item .wpcp-all-captions,.wpcp-carousel-section.detail-on-right .wpcp-single-item .wpcp-slide-image{float:left;width:50%;box-sizing:border-box}.wpcp-carousel-section.detail-with-overlay .wpcp-all-captions{position:absolute;top:0;bottom:0;left:0;right:0;display:flex;flex-direction:column;justify-content:center;height:100%}.wpcp-carousel-section.detail-with-overlay.overlay-lower .wpcp-all-captions{top:auto;display:block;height:auto}.wpcp-carousel-section.detail-with-overlay.overlay-on-hover .wpcp-all-captions{visibility:hidden;opacity:0;transition:visibility .3s linear,opacity .3s linear}.wpcp-carousel-section.detail-with-overlay.overlay-on-hover .wpcp-single-item:hover .wpcp-all-captions{visibility:visible;opacity:1}.wpcp-carousel-section.detail-with-overlay .wpcp-single-item{position:relative}.wpcp-carousel-section .wpcp-single-item:focus{outline:0}.wpcp-product-carousel .wpcp-single-item .wpcp-all-captions{padding:15px 20px 0;overflow:hidden;text-align:center}.wpcp-product-carousel .wpcp-single-item .wpcp-product-title{margin:0;font-size:16px;line-height:23px;font-weight:600}.wpcp-product-price{margin-top:5px}.wpcp-carousel-section.wpcp-product-carousel .wpcp-cart-button{margin-top:12px}.wpcp-carousel-section.wpcp-product-carousel .wpcp-cart-button a.button{background:#ebebeb;color:#545454;border:1px solid #d1d1d1;font-weight:500;padding:0 20px;line-height:38px;display:inline-block;font-size:14px}.wpcp-carousel-section.wpcp-product-carousel .wpcp-all-captions .wpcp-cart-button a.add_to_cart_button.added{display:none}.wpcp-carousel-section.wpcp-product-carousel .wpcp-all-captions .wpcp-cart-button .added_to_cart{font-size:100%;margin:0;line-height:38px;cursor:pointer;position:relative;text-decoration:none;overflow:visible;padding:0 20px;font-weight:600;border-radius:3px;left:auto;color:#515151;background-color:#ebe9eb;border:0;display:inline-block;background-image:none;box-shadow:none;text-shadow:none;border:1px solid}.wpcp-carousel-section.wpcp-product-carousel .wpcp-all-captions .wpcp-cart-button a.button:hover{background:#3f3f3f;border-color:#d1d1d1;color:#fff}.wpcp-carousel-section.wpcp-product-carousel .wpcp-all-captions .wpcp-cart-button .wc-forward::after{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;font-style:normal;font-variant:normal;font-weight:400;line-height:1;vertical-align:-.125em;font:normal normal normal 14px/1 FontAwesome;font-weight:900;line-height:inherit;vertical-align:baseline;content:"\f178";margin-left:.5407911001em}.wpcp-carousel-section .woocommerce-product-rating .star-rating{margin:4px auto;float:none}.wpcp-product-price span{font-weight:700;font-size:14px}.wpcp-carousel-section .slick-next:after,.wpcp-carousel-section .slick-next:before,.wpcp-carousel-section .slick-prev:after,.wpcp-carousel-section .slick-prev:before{display:none}.wpcp-carousel-section .slick-prev{left:0}.wpcp-carousel-section .slick-next{right:0}.wpcp-carousel-section .slick-next,.wpcp-carousel-section .slick-prev{width:30px;height:30px;line-height:30px;position:absolute;z-index:22;left:auto;top:auto;font-size:30px;-webkit-transition:ease all .3s;-moz-transition:ease all .3s;-ms-transition:ease all .3s;-o-transition:ease all .3s;transition:ease all .3s;margin-top:-15px;cursor:pointer}.wpcp-carousel-section.nav-vertical-center{padding:0 25px}.wpcp-carousel-section .slick-next,.wpcp-carousel-section .slick-next i,.wpcp-carousel-section .slick-prev,.wpcp-carousel-section .slick-prev i{line-height:28px;font-family:fontawesome;color:#000}.wpcp-carousel-section.nav-vertical-center .slick-next,.wpcp-carousel-section.nav-vertical-center .slick-prev{top:50%}.wpcp-carousel-section.nav-vertical-center .slick-prev{left:0}.wpcp-carousel-section.nav-vertical-center .slick-next,.wpcp-carousel-section.nav-vertical-center .slick-prev{margin-top:-15px}.wpcp-carousel-section.nav-vertical-center.slick-dotted .slick-next,.wpcp-carousel-section.nav-vertical-center.slick-dotted .slick-prev{margin-top:-35px}.wpcp-carousel-section.nav-vertical-center .slick-next{right:0;text-align:right}.wpcp-carousel-section ul.slick-dots{list-style:none;padding:0!important;margin:0;text-align:center;margin-top:18px;position:relative}.wpcp-carousel-section ul.slick-dots li{display:inline;margin:0}.wpcp-carousel-section ul.slick-dots li button{background-color:#ccc;border:0 solid;border-radius:50%;font-size:0;margin:3px;overflow:hidden;padding:0;text-indent:-999px;width:12px;height:12px;cursor:pointer}.wpcp-carousel-section ul.slick-dots,.wpcp-carousel-section ul.slick-dots li,.wpcp-carousel-section ul.slick-dots li button{line-height:1!important}.wpcp-carousel-section ul.slick-dots li button:focus{outline:0}.wpcp-carousel-section ul.slick-dots li.slick-active button{background-color:#666}.wpcpro-row.no-gutters>[class*=wpcpro-col-]{padding-right:0;padding-left:0}.wpcpro-row>[class*=wpcpro-col-]{padding:0 10px;padding-bottom:20px}.wpcpro-row{display:flex;flex-wrap:wrap;margin-right:-10px;margin-left:-10px}.wpcpro-post-pagination .ajax-page-numbers,.wpcpro-post-pagination .page-numbers{background:#fff;color:#5e5e5e;border:2px solid #bbb;width:38px;height:38px;line-height:38px;font-size:16px;text-align:center;display:inline-block;margin-right:4px;text-decoration:none;font-weight:700;border-radius:3px;-webkit-transition:all .33s;transition:all .33s;-webkit-box-sizing:content-box;box-sizing:content-box}.wpcpro-post-pagination .ajax-page-numbers.current,.wpcpro-post-pagination .page-numbers.current{cursor:auto;color:#fff;background:#178087;border-color:#178087}.wpcpro-post-pagination-number{margin-top:20px}.wpcpro-post-pagination a.page-numbers:hover,.wpcpro-post-pagination span.current,.wpcpro-post-pagination span:hover{color:#fff;background:#178087;border-color:#178087}
1
+ .wpcp-carousel-wrapper *{word-break:break-word;word-wrap:break-word;box-sizing:border-box}.wpcp-carousel-section.wpcp-standard:not(.wpcp-preloader){display:none}.wpcp-carousel-section.wpcp-standard.slick-initialized:not(.wpcp-preloader){display:block}.wpcp-carousel-wrapper{position:relative}.wpcp-carousel-section.wpcp-preloader{opacity:0}.wpcp-carousel-preloader{position:absolute;left:0;top:0;height:100%;width:100%;text-align:center;display:flex;align-items:center;justify-content:center}.sp-wpcp-wrapper{margin-bottom:0}.wpcp-carousel-section.wpcp-standard,.wpcp-carousel-section.wpcp-standard .slick-list{overflow:hidden}.wpcp-carousel-section.wpcp-standard{overflow:hidden;padding-right:2px}.wpcp-carousel-section.wpcp-standard.slick-initialized{position:relative}.wpcp-carousel-section .wpcp-single-item{overflow:hidden;display:inline-block;vertical-align:middle;float:none;max-width:100%}.wpcp-all-captions li{list-style:none;margin:0}.wpcp-carousel-section p,.wpcp-carousel-section ul,.wpcp-image-carousel .wpcp-single-item .wpcp-all-captions h2{margin:0}.wpcp-carousel-section.wpcp-video-carousel .wpcp-single-item .wpcp-slide-image{position:relative}.wpcp-carousel-section.wpcp-content-carousel .wpcp-single-item{padding-left:15px;padding-right:15px}.wpcp-carousel-section .wpcp-single-item img[data-lazy]{width:32px}.wpcp-carousel-section .wpcp-single-item img{margin:0 auto;max-width:100%;height:auto;box-shadow:none}.wpcp-carousel-section.wpcp-image-carousel .wpcp-single-item .wpcp-all-captions{padding:10px 20px 15px}.wpcp-carousel-section .wpcp-single-item .wpcp-all-captions .wpcp-image-description{margin:6px 0 0}.wpcp-carousel-section .wpcp-single-item .wpcp-slide-image a:focus{outline:0}.wpcp-carousel-section .slick-slide:focus{outline:0}.wpcp-carousel-section.slick-initialized .slick-slide{margin-right:20px;float:none;display:inline-block;vertical-align:middle}.wpcp-carousel-section .slick-list{margin-right:-20px}.wpcp-carousel-section .wpcp-all-captions a,.wpcp-carousel-section a,.wpcp-carousel-section a:hover{text-decoration:none}.wpcp-post-carousel .wpcp-single-item .wpcp-all-captions{padding:15px 20px 0;overflow:hidden}#poststuff h2,.wpcp-post-carousel .wpcp-single-item .wpcp-all-captions h2{font-size:16px;font-weight:600;margin:0 0 10px}.wpcp-single-item h2 a{color:#444;text-decoration:none}.wpcp-post-carousel .wpcp-single-item .wpcp-all-captions .post-categories{margin:0 0 7px;padding:0;display:block}.wpcp-post-carousel .wpcp-all-captions p{margin-bottom:15px}.wpcp_readmore{border:1px solid;display:inline-block;background:#22afba;margin:0 0 14px;line-height:32px;padding:5px 14px;font-weight:600}.wpcp_readmore,.wpcp_readmore:focus,.wpcp_readmore:hover{color:#fff}.wpcp-single-item .wpcp-all-captions .wpcp-post-meta{margin:0 0 20px;padding:0}.wpcp-post-carousel .wpcp-post-meta li{display:inline-block;margin-right:5px}.wpcp-post-carousel .wpcp-post-meta li:last-child{margin-right:0}.wpcp-post-meta li,.wpcp-post-meta li a{color:#999}.wpcp-carousel-section.detail-on-right .wpcp-single-item .wpcp-all-captions,.wpcp-carousel-section.detail-on-right .wpcp-single-item .wpcp-slide-image{float:left;width:50%;box-sizing:border-box}.wpcp-carousel-section.detail-with-overlay .wpcp-all-captions{position:absolute;top:0;bottom:0;left:0;right:0;display:flex;flex-direction:column;justify-content:center;height:100%}.wpcp-carousel-section.detail-with-overlay.overlay-lower .wpcp-all-captions{top:auto;display:block;height:auto}.wpcp-carousel-section.detail-with-overlay.overlay-on-hover .wpcp-all-captions{visibility:hidden;opacity:0;transition:visibility .3s linear,opacity .3s linear}.wpcp-carousel-section.detail-with-overlay.overlay-on-hover .wpcp-single-item:hover .wpcp-all-captions{visibility:visible;opacity:1}.wpcp-carousel-section.detail-with-overlay .wpcp-single-item{position:relative}.wpcp-carousel-section .wpcp-single-item:focus{outline:0}.wpcp-product-carousel .wpcp-single-item .wpcp-all-captions{padding:15px 20px 0;overflow:hidden;text-align:center}.wpcp-product-carousel .wpcp-single-item .wpcp-product-title{margin:0;font-size:16px;line-height:23px;font-weight:600}.wpcp-product-price{margin-top:5px}.wpcp-carousel-section.wpcp-product-carousel .wpcp-cart-button{margin-top:12px}.wpcp-carousel-section.wpcp-product-carousel .wpcp-cart-button a.button{background:#ebebeb;color:#545454;border:1px solid #d1d1d1;font-weight:500;padding:0 20px;line-height:38px;display:inline-block;font-size:14px}.wpcp-carousel-section.wpcp-product-carousel .wpcp-all-captions .wpcp-cart-button a.add_to_cart_button.added{display:none}.wpcp-carousel-section.wpcp-product-carousel .wpcp-all-captions .wpcp-cart-button .added_to_cart{font-size:100%;margin:0;line-height:38px;cursor:pointer;position:relative;text-decoration:none;overflow:visible;padding:0 20px;font-weight:600;border-radius:3px;left:auto;color:#515151;background-color:#ebe9eb;border:0;display:inline-block;background-image:none;box-shadow:none;text-shadow:none;border:1px solid}.wpcp-carousel-section.wpcp-product-carousel .wpcp-all-captions .wpcp-cart-button a.button:hover{background:#3f3f3f;border-color:#d1d1d1;color:#fff}.wpcp-carousel-section.wpcp-product-carousel .wpcp-all-captions .wpcp-cart-button .wc-forward::after{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;font-style:normal;font-variant:normal;font-weight:400;line-height:1;vertical-align:-.125em;font:normal normal normal 14px/1 FontAwesome;font-weight:900;line-height:inherit;vertical-align:baseline;content:"\f178";margin-left:.5407911001em}.wpcp-carousel-section .woocommerce-product-rating .star-rating{margin:4px auto;float:none}.wpcp-product-price span{font-weight:700;font-size:14px}.wpcp-carousel-section .slick-next:after,.wpcp-carousel-section .slick-next:before,.wpcp-carousel-section .slick-prev:after,.wpcp-carousel-section .slick-prev:before{display:none}.wpcp-carousel-section .slick-prev{left:0;right:auto}.wpcp-carousel-section .slick-next{right:0;left:auto}.wpcp-carousel-section .slick-next,.wpcp-carousel-section .slick-prev{width:30px;height:30px;line-height:30px;position:absolute;z-index:22;left:auto;top:auto;font-size:30px;-webkit-transition:ease all .3s;-moz-transition:ease all .3s;-ms-transition:ease all .3s;-o-transition:ease all .3s;transition:ease all .3s;margin-top:-15px;cursor:pointer}.wpcp-carousel-section.nav-vertical-center{padding:0 25px}.wpcp-carousel-section .slick-next,.wpcp-carousel-section .slick-next i,.wpcp-carousel-section .slick-prev,.wpcp-carousel-section .slick-prev i{line-height:28px;font-family:fontawesome;color:#000}.wpcp-carousel-section.nav-vertical-center .slick-next,.wpcp-carousel-section.nav-vertical-center .slick-prev{top:50%}.wpcp-carousel-section.nav-vertical-center .slick-prev{left:0;right:auto;text-align:left}.wpcp-carousel-section.nav-vertical-center .slick-next,.wpcp-carousel-section.nav-vertical-center .slick-prev{margin-top:-15px}.wpcp-carousel-section.nav-vertical-center.slick-dotted .slick-next,.wpcp-carousel-section.nav-vertical-center.slick-dotted .slick-prev{margin-top:-35px}.wpcp-carousel-section.nav-vertical-center .slick-next{right:0;text-align:right}.wpcp-carousel-section ul.slick-dots{list-style:none;padding:0!important;margin:0;text-align:center;margin-top:18px;position:relative}.wpcp-carousel-section ul.slick-dots li{display:inline;margin:0}.wpcp-carousel-section ul.slick-dots li button{background-color:#ccc;border:0 solid;border-radius:50%;font-size:0;margin:3px;overflow:hidden;padding:0;text-indent:-999px;width:12px;height:12px;cursor:pointer}.wpcp-carousel-section ul.slick-dots,.wpcp-carousel-section ul.slick-dots li,.wpcp-carousel-section ul.slick-dots li button{line-height:1!important}.wpcp-carousel-section ul.slick-dots li button:focus{outline:0}.wpcp-carousel-section ul.slick-dots li.slick-active button{background-color:#666}.wpcpro-row.no-gutters>[class*=wpcpro-col-]{padding-right:0;padding-left:0}.wpcpro-row>[class*=wpcpro-col-]{padding:0 10px;padding-bottom:20px}.wpcpro-row{display:flex;flex-wrap:wrap;margin-right:-10px;margin-left:-10px}.wpcpro-post-pagination .ajax-page-numbers,.wpcpro-post-pagination .page-numbers{background:#fff;color:#5e5e5e;border:2px solid #bbb;width:38px;height:38px;line-height:38px;font-size:16px;text-align:center;display:inline-block;margin-right:4px;text-decoration:none;font-weight:700;border-radius:3px;-webkit-transition:all .33s;transition:all .33s;-webkit-box-sizing:content-box;box-sizing:content-box}.wpcpro-post-pagination .ajax-page-numbers.current,.wpcpro-post-pagination .page-numbers.current{cursor:auto;color:#fff;background:#178087;border-color:#178087}.wpcpro-post-pagination-number{margin-top:20px}.wpcpro-post-pagination a.page-numbers:hover,.wpcpro-post-pagination span.current,.wpcpro-post-pagination span:hover{color:#fff;background:#178087;border-color:#178087}
public/templates/preloader.php CHANGED
@@ -13,6 +13,6 @@ if ( ! defined( 'WPINC' ) ) {
13
  }
14
  if ( ! empty( $preloader_image ) ) {
15
  echo '<div id="wpcp-preloader-' . esc_attr( $post_id ) . '" class="wpcp-carousel-preloader">';
16
- echo '<img src="' . esc_url( $preloader_image ) . '"/>';
17
  echo '</div>';
18
  }
13
  }
14
  if ( ! empty( $preloader_image ) ) {
15
  echo '<div id="wpcp-preloader-' . esc_attr( $post_id ) . '" class="wpcp-carousel-preloader">';
16
+ echo '<img src="' . esc_url( $preloader_image ) . '" alt="Preloader Image"/>';
17
  echo '</div>';
18
  }
readme.txt CHANGED
@@ -3,8 +3,8 @@ Contributors: shapedplugin, khalilu, shamimmiashuhagh, rubel_miah
3
  Donate link: http://shapedplugin.com/donate
4
  Tags: wordpress carousel, best carousel plugin, image carousel, image slider, post carousel, custom post carousel, custom taxonomy carousel, woocommerce product carousel, content carousel, video carousel, video slider, video lightbox, youtube carousel, video gallery, carousel, slider, responsive slider, responsive carousel, carousel slider, ticker carousel, center mode carousel, slide anything, image gallery, image lightbox, wordpress image gallery, photo gallery, gallery slider, wordpress gallery plugin, gallery, post slider, vimeo slider, self hosted video carousel, content slider, wordpress slider, featured content slider, html slider, horizontal carousel slider, posts content slider, product carousel, woocommerce slider, woocommerce product slider
5
  Requires at least: 4.5
6
- Tested up to: 5.9
7
- Stable tag: 2.4.3
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -327,6 +327,11 @@ Thank you!
327
 
328
  == Changelog ==
329
 
 
 
 
 
 
330
  = 2.4.3 – Jan 26, 2022 =
331
  * Tested: WooCommerce 6.1.1 compatibility.
332
  * Tested: WordPress 5.9 compatibility.
3
  Donate link: http://shapedplugin.com/donate
4
  Tags: wordpress carousel, best carousel plugin, image carousel, image slider, post carousel, custom post carousel, custom taxonomy carousel, woocommerce product carousel, content carousel, video carousel, video slider, video lightbox, youtube carousel, video gallery, carousel, slider, responsive slider, responsive carousel, carousel slider, ticker carousel, center mode carousel, slide anything, image gallery, image lightbox, wordpress image gallery, photo gallery, gallery slider, wordpress gallery plugin, gallery, post slider, vimeo slider, self hosted video carousel, content slider, wordpress slider, featured content slider, html slider, horizontal carousel slider, posts content slider, product carousel, woocommerce slider, woocommerce product slider
5
  Requires at least: 4.5
6
+ Tested up to: 5.9.1
7
+ Stable tag: 2.4.4
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
327
 
328
  == Changelog ==
329
 
330
+ = 2.4.4 – Feb 23, 2022 =
331
+ * New: Elementor Addons for WP Carousel.
332
+ * New: The alt tag of the preloader image is added.
333
+ * Fix: WordPress 5.9 Gutenberg block compatibility issue.
334
+
335
  = 2.4.3 – Jan 26, 2022 =
336
  * Tested: WooCommerce 6.1.1 compatibility.
337
  * Tested: WordPress 5.9 compatibility.
wp-carousel-free.php CHANGED
@@ -9,7 +9,7 @@
9
  * Plugin Name: WordPress Carousel
10
  * Plugin URI: https://shapedplugin.com/plugin/wordpress-carousel-pro/?ref=1
11
  * Description: The Most Powerful and User-friendly WordPress Carousel Plugin. Create beautiful carousels in minutes using Images, Posts, WooCommerce Products etc.
12
- * Version: 2.4.3
13
  * Author: ShapedPlugin
14
  * Author URI: https://shapedplugin.com/
15
  * License: GPL-2.0+
@@ -17,7 +17,7 @@
17
  * Text Domain: wp-carousel-free
18
  * Domain Path: /languages
19
  * WC requires at least: 4.0
20
- * WC tested up to: 6.1.1
21
  */
22
 
23
  // If this file is called directly, abort.
@@ -119,7 +119,7 @@ class SP_WP_Carousel_Free {
119
  */
120
  public function setup() {
121
  $this->plugin_name = 'wp-carousel-free';
122
- $this->version = '2.4.3';
123
  $this->define_constants();
124
  $this->includes();
125
  $this->load_dependencies();
@@ -166,7 +166,6 @@ class SP_WP_Carousel_Free {
166
  include_once WPCAROUSELF_INCLUDES . '/class-wp-carousel-free-loader.php';
167
  include_once WPCAROUSELF_INCLUDES . '/class-wp-carousel-free-post-types.php';
168
  include_once WPCAROUSELF_PATH . '/admin/views/sp-framework/classes/setup.class.php';
169
- // include_once WPCAROUSELF_PATH . '/admin/views/wpcfree-metabox/classes/setup.class.php';
170
  include_once WPCAROUSELF_PATH . '/admin/views/notices/review.php';
171
  include_once WPCAROUSELF_PATH . '/admin/views/notices/class-wp-carousel-free-promotion.php';
172
  include_once WPCAROUSELF_PATH . '/admin/views/metabox-config.php';
@@ -184,6 +183,7 @@ class SP_WP_Carousel_Free {
184
  include_once WPCAROUSELF_PATH . '/admin/views/premium.php';
185
  include_once WPCAROUSELF_PATH . '/admin/preview/class-wp-carousel-free-preview.php';
186
  include_once WPCAROUSELF_PATH . '/admin/class-wp-carousel-free-gutenberg-block.php';
 
187
  }
188
 
189
  /**
@@ -274,6 +274,12 @@ class SP_WP_Carousel_Free {
274
  new WP_Carousel_Free_Gutenberg_Block();
275
  }
276
 
 
 
 
 
 
 
277
  }
278
 
279
  /**
9
  * Plugin Name: WordPress Carousel
10
  * Plugin URI: https://shapedplugin.com/plugin/wordpress-carousel-pro/?ref=1
11
  * Description: The Most Powerful and User-friendly WordPress Carousel Plugin. Create beautiful carousels in minutes using Images, Posts, WooCommerce Products etc.
12
+ * Version: 2.4.4
13
  * Author: ShapedPlugin
14
  * Author URI: https://shapedplugin.com/
15
  * License: GPL-2.0+
17
  * Text Domain: wp-carousel-free
18
  * Domain Path: /languages
19
  * WC requires at least: 4.0
20
+ * WC tested up to: 6.2.1
21
  */
22
 
23
  // If this file is called directly, abort.
119
  */
120
  public function setup() {
121
  $this->plugin_name = 'wp-carousel-free';
122
+ $this->version = '2.4.4';
123
  $this->define_constants();
124
  $this->includes();
125
  $this->load_dependencies();
166
  include_once WPCAROUSELF_INCLUDES . '/class-wp-carousel-free-loader.php';
167
  include_once WPCAROUSELF_INCLUDES . '/class-wp-carousel-free-post-types.php';
168
  include_once WPCAROUSELF_PATH . '/admin/views/sp-framework/classes/setup.class.php';
 
169
  include_once WPCAROUSELF_PATH . '/admin/views/notices/review.php';
170
  include_once WPCAROUSELF_PATH . '/admin/views/notices/class-wp-carousel-free-promotion.php';
171
  include_once WPCAROUSELF_PATH . '/admin/views/metabox-config.php';
183
  include_once WPCAROUSELF_PATH . '/admin/views/premium.php';
184
  include_once WPCAROUSELF_PATH . '/admin/preview/class-wp-carousel-free-preview.php';
185
  include_once WPCAROUSELF_PATH . '/admin/class-wp-carousel-free-gutenberg-block.php';
186
+ require_once WPCAROUSELF_PATH . '/admin/class-wp-carousel-free-elementor-block.php';
187
  }
188
 
189
  /**
274
  new WP_Carousel_Free_Gutenberg_Block();
275
  }
276
 
277
+ // Elementor shortcode block.
278
+ require_once ABSPATH . 'wp-admin/includes/plugin.php';
279
+ if ( ( is_plugin_active( 'elementor/elementor.php' ) || is_plugin_active_for_network( 'elementor/elementor.php' ) ) ) {
280
+ new Wp_Carousel_Free_Element_Shortcode_Block();
281
+ }
282
+
283
  }
284
 
285
  /**