| 1 |
<?php |
| 2 |
|
| 3 |
|
| 4 |
namespace Boxzilla\Admin; |
| 5 |
|
| 6 |
class Installer { |
| 7 |
|
| 8 |
/** |
| 9 |
* Run the installer |
| 10 |
*/ |
| 11 |
public static function run() { |
| 12 |
$installer = new self; |
| 13 |
$installer->install(); |
| 14 |
} |
| 15 |
|
| 16 |
/** |
| 17 |
* The main install method |
| 18 |
*/ |
| 19 |
public function install() { |
| 20 |
|
| 21 |
// don't install sample boxes on multisite |
| 22 |
if( is_multisite() ) { |
| 23 |
return; |
| 24 |
} |
| 25 |
|
| 26 |
$this->transfer_from_stb(); |
| 27 |
$this->create_sample_box(); |
| 28 |
} |
| 29 |
|
| 30 |
/** |
| 31 |
* |
| 32 |
*/ |
| 33 |
public function transfer_from_stb() { |
| 34 |
global $wpdb; |
| 35 |
|
| 36 |
// transfer post types |
| 37 |
$query = $wpdb->prepare( "UPDATE {$wpdb->posts} SET post_type = %s WHERE post_type = %s", 'boxzilla-box', 'scroll-triggered-box' ); |
| 38 |
$wpdb->query( $query ); |
| 39 |
|
| 40 |
// transfer post meta |
| 41 |
$query = $wpdb->prepare( "UPDATE {$wpdb->postmeta} SET meta_key = %s WHERE meta_key = %s", 'boxzilla_options', 'stb_options' ); |
| 42 |
$wpdb->query( $query ); |
| 43 |
|
| 44 |
// transfer rules |
| 45 |
$query = $wpdb->prepare( "UPDATE {$wpdb->options} SET option_name = %s WHERE option_name = %s", 'boxzilla_rules', 'stb_rules' ); |
| 46 |
$wpdb->query( $query ); |
| 47 |
} |
| 48 |
|
| 49 |
/** |
| 50 |
* @return bool |
| 51 |
*/ |
| 52 |
protected function create_sample_box() { |
| 53 |
|
| 54 |
// only create sample box if no boxes were found |
| 55 |
$boxes = get_posts( |
| 56 |
array( |
| 57 |
'post_type' => 'boxzilla-box', |
| 58 |
'post_status' => array( 'publish', 'draft' ) |
| 59 |
) |
| 60 |
); |
| 61 |
|
| 62 |
if( ! empty( $boxes ) ) { |
| 63 |
return false; |
| 64 |
} |
| 65 |
|
| 66 |
$box_id = wp_insert_post( |
| 67 |
array( |
| 68 |
'post_type' => 'boxzilla-box', |
| 69 |
'post_title' => "Sample Box", |
| 70 |
'post_content' => "<h4>Hello world.</h4><p>This is a sample box, with some sample content in it.</p>", |
| 71 |
'post_status' => 'draft', |
| 72 |
) |
| 73 |
); |
| 74 |
|
| 75 |
// set box settings |
| 76 |
$settings = array( |
| 77 |
'css' => array( |
| 78 |
'background_color' => '#edf9ff', |
| 79 |
'color' => '', |
| 80 |
'width' => '340', |
| 81 |
'border_color' => '#dd7575', |
| 82 |
'border_width' => '4', |
| 83 |
'border_style' => 'dashed', |
| 84 |
'position' => 'bottom-right', |
| 85 |
'manual' => '' |
| 86 |
) |
| 87 |
); |
| 88 |
|
| 89 |
update_post_meta( $box_id, 'boxzilla_options', $settings ); |
| 90 |
|
| 91 |
return true; |
| 92 |
} |
| 93 |
} |