Nessuna descrizione

class-pum-admin-upgrade-routine-2.php 2.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. <?php
  2. /**
  3. * Upgrade Routine 2
  4. *
  5. * @package PUM
  6. * @subpackage Admin/Upgrades
  7. * @copyright Copyright (c) 2019, Code Atlantic LLC
  8. * @license http://opensource.org/licenses/gpl-3.0.php GNU Public License
  9. * @since 1.4
  10. */
  11. // Exit if accessed directly
  12. if ( ! defined( 'ABSPATH' ) ) {
  13. exit;
  14. }
  15. if ( ! class_exists( 'PUM_Admin_Upgrade_Routine' ) ) {
  16. require_once POPMAKE_DIR . "includes/admin/upgrades/class-pum-admin-upgrade-routine.php";
  17. }
  18. /**
  19. * Class PUM_Admin_Upgrade_Routine_2
  20. */
  21. final class PUM_Admin_Upgrade_Routine_2 extends PUM_Admin_Upgrade_Routine {
  22. public static function description() {
  23. return __( 'Update your popups settings.', 'popup-maker' );
  24. }
  25. public static function run() {
  26. if ( ! current_user_can( PUM_Admin_Upgrades::instance()->required_cap ) ) {
  27. wp_die( __( 'You do not have permission to do upgrades', 'popup-maker' ), __( 'Error', 'popup-maker' ), array( 'response' => 403 ) );
  28. }
  29. ignore_user_abort( true );
  30. if ( ! pum_is_func_disabled( 'set_time_limit' ) ) {
  31. @set_time_limit( 0 );
  32. }
  33. PUM_Admin_Upgrade_Routine_2::process_popups();
  34. PUM_Admin_Upgrade_Routine_2::cleanup_old_data();
  35. }
  36. public static function process_popups() {
  37. $popups = get_posts( array(
  38. 'post_type' => 'popup',
  39. 'post_status' => array( 'any', 'trash' ),
  40. 'posts_per_page' => - 1,
  41. ) );
  42. $popup_groups = array(
  43. 'display' => popmake_popup_display_defaults(),
  44. 'close' => popmake_popup_close_defaults(),
  45. 'click_open' => popmake_popup_click_open_defaults(),
  46. 'auto_open' => popmake_popup_auto_open_defaults(),
  47. 'admin_debug' => popmake_popup_admin_debug_defaults(),
  48. );
  49. foreach ( $popups as $popup ) {
  50. foreach ( $popup_groups as $group => $defaults ) {
  51. $values = array_merge( $defaults, popmake_get_popup_meta_group( $group, $popup->ID ) );
  52. update_post_meta( $popup->ID, "popup_{$group}", $values );
  53. }
  54. }
  55. }
  56. public static function cleanup_old_data() {
  57. global $wpdb;
  58. $popup_groups = array(
  59. 'display',
  60. 'close',
  61. 'click_open',
  62. 'auto_open',
  63. 'admin_debug',
  64. );
  65. $popup_fields = array();
  66. foreach ( $popup_groups as $group ) {
  67. foreach ( apply_filters( 'popmake_popup_meta_field_group_' . $group, array() ) as $field ) {
  68. $popup_fields[] = 'popup_' . $group . '_' . $field;
  69. }
  70. }
  71. $popup_fields = implode( "','", $popup_fields );
  72. $wpdb->query( "DELETE FROM $wpdb->postmeta WHERE meta_key IN('$popup_fields');" );
  73. }
  74. }