img
10 years ago
js
2 years ago
less
1 year ago
lib
2 years ago
widgets
1 year ago
migration.php
1 year ago
widgets.php
7 months ago
migration.php
66 lines
| 1 | <?php |
| 2 | |
| 3 | /** |
| 4 | * Go through all the old PB widgets and change them into far better visual editor widgets |
| 5 | * |
| 6 | * @param array $panels_data |
| 7 | * |
| 8 | * @return array |
| 9 | */ |
| 10 | function siteorigin_panels_legacy_widget_migration( $panels_data ) { |
| 11 | if ( ! empty( $panels_data['widgets'] ) && is_array( $panels_data['widgets'] ) ) { |
| 12 | foreach ( $panels_data['widgets'] as &$widget ) { |
| 13 | switch ( $widget['panels_info']['class'] ) { |
| 14 | case 'SiteOrigin_Panels_Widgets_Gallery': |
| 15 | $shortcode = '[gallery '; |
| 16 | |
| 17 | if ( ! empty( $widget['ids'] ) ) { |
| 18 | $shortcode .= 'ids="' . esc_attr( $widget['ids'] ) . '" '; |
| 19 | } |
| 20 | $shortcode = trim( $shortcode ) . ']'; |
| 21 | |
| 22 | $widget = array( |
| 23 | 'title' => '', |
| 24 | 'filter' => '1', |
| 25 | 'type' => 'visual', |
| 26 | 'text' => $shortcode, |
| 27 | 'panels_info' => $widget['panels_info'], |
| 28 | ); |
| 29 | $widget['panels_info']['class'] = 'SiteOrigin_Widget_Editor_Widget'; |
| 30 | |
| 31 | break; |
| 32 | |
| 33 | case 'SiteOrigin_Panels_Widgets_Image': |
| 34 | if ( class_exists( 'SiteOrigin_Panels_Widgets_Image' ) ) { |
| 35 | ob_start(); |
| 36 | the_widget( |
| 37 | 'SiteOrigin_Panels_Widgets_Image', |
| 38 | $widget, |
| 39 | array( |
| 40 | 'before_widget' => '', |
| 41 | 'after_widget' => '', |
| 42 | 'before_title' => '', |
| 43 | 'after_title' => '', |
| 44 | ) |
| 45 | ); |
| 46 | |
| 47 | $widget = array( |
| 48 | 'title' => '', |
| 49 | 'filter' => '1', |
| 50 | 'type' => 'visual', |
| 51 | 'text' => ob_get_clean(), |
| 52 | 'panels_info' => $widget['panels_info'], |
| 53 | ); |
| 54 | |
| 55 | $widget['panels_info']['class'] = 'SiteOrigin_Widget_Editor_Widget'; |
| 56 | } |
| 57 | |
| 58 | break; |
| 59 | } |
| 60 | } |
| 61 | } |
| 62 | |
| 63 | return $panels_data; |
| 64 | } |
| 65 | add_filter( 'siteorigin_panels_data', 'siteorigin_panels_legacy_widget_migration' ); |
| 66 |