MSV FM

dot.antimicrobial@66.96.161.157: ~ $
Path : /hermes/bosweb/b1536/ywh.vebose/wp-content/plugins/alids/core/
File Upload :
Current < : /hermes/bosweb/b1536/ywh.vebose/wp-content/plugins/alids/core/setup.php

<?php

/**
 * Setup the plugin
 */
function ads_install() {

	require( ADS_PATH . 'core/sql.php' );

	require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );

	foreach( ads_sql_list() as $key ) {
		dbDelta($key);
    }

	ads_maybe_add_columns();

	ads_alter_transact();

    update_option( 'comments_notify', '' );
    update_option( 'moderation_notify', '' );
	update_option( 'ads-version', ADS_VERSION  );

    adsSetFrontPage();

	add_rewrite_rule( '^oauth1/extension/?$','index.php?rest_oauth1=extension','top' );

	flush_rewrite_rules();
}

function ads_get_post_by_name($post_name, $output = OBJECT) {
    global $wpdb;
    $post = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_name = %s AND post_type='post'", $post_name ));
    if ( $post )
        return get_post($post, $output);

    return null;
}

function adsSetFrontPage() {

    update_option( 'show_on_front', 'page' );

    $home = get_page_by_path('home');

    if ( $home ) {
        $id = $home->ID;
    } else {
        $home_post = ads_get_post_by_name( 'home' );
        if($home_post){
            $id = $home_post->ID;
        }else{
            $id = wp_insert_post( [
                'post_type'    => 'page',
                'post_title'   => __( 'Home', 'ads' ),
                'post_name'    => 'home',
                'post_content' => '',
                'post_status'  => 'publish',
                'post_author'  => 1,
            ] );
        }
    }

    update_option( 'page_on_front', $id );

    $blog = get_page_by_path( 'blog' );

    if ( $blog ) {
        $id = $blog->ID;
    } else {
        $id = wp_insert_post( [
            'post_type'    => 'page',
            'post_title'   => __( 'Blog', 'ads' ),
            'post_name'    => 'blog',
            'post_content' => '',
            'post_status'  => 'publish',
            'post_author'  => 1,
        ] );
    }

    update_option( 'page_for_posts', $id );
}

function ads_maybe_add_columns() {
	
	global $wpdb;

	$args = [
		'payment_discount' => [
			'applyto'       => "ALTER TABLE `{$wpdb->prefix}payment_discount` ADD `applyto` TEXT DEFAULT NULL;",
			'tickbox'       => "ALTER TABLE `{$wpdb->prefix}payment_discount` ADD `tickbox` INT(1) DEFAULT '0';",
			'tickbox_value' => "ALTER TABLE `{$wpdb->prefix}payment_discount` ADD `tickbox_value` DECIMAL(12,2) DEFAULT '0';",
			'tickbox_auto'  => "ALTER TABLE `{$wpdb->prefix}payment_discount` ADD `tickbox_auto` INT(1) DEFAULT '0';"
		],
		'ads_products_meta' => [
			'links' => "ALTER TABLE `{$wpdb->prefix}ads_products_meta` ADD `links` TEXT DEFAULT NULL;",
			'sizeAttr' => "ALTER TABLE `{$wpdb->prefix}ads_products_meta` ADD `sizeAttr` LONGTEXT DEFAULT NULL;",
        
        ],
        'ads_orders_item' => [
            'item_detail'     => "ALTER TABLE `{$wpdb->prefix}ads_orders_item` ADD `item_detail` TEXT DEFAULT NULL;",
            'delivery'        => "ALTER TABLE `{$wpdb->prefix}ads_orders_item` ADD `delivery` VARCHAR(255) DEFAULT NULL;",
            'tracking_status' => "ALTER TABLE `{$wpdb->prefix}ads_orders_item` ADD `tracking_status` VARCHAR(255) DEFAULT NULL;"
        ],
		'ads_ali_meta' => [
			'skuOriginal' => "ALTER TABLE `{$wpdb->prefix}ads_ali_meta` ADD `skuOriginal` LONGTEXT DEFAULT NULL;"
		],
		'payment_transaction' => [
			'basket'          => "ALTER TABLE `{$wpdb->prefix}payment_transaction` ADD `basket` TEXT DEFAULT NULL;",
			'fulfillment'     => "ALTER TABLE `{$wpdb->prefix}payment_transaction` ADD `fulfillment` VARCHAR(15) DEFAULT 'not_processed';",
			'amount_shipping' => "ALTER TABLE `{$wpdb->prefix}payment_transaction` ADD `amount_shipping` DECIMAL(12,2) DEFAULT NULL ;",
			'tax'             => "ALTER TABLE `{$wpdb->prefix}payment_transaction` ADD `tax` LONGTEXT DEFAULT NULL;",
			'amount_purchase' => "ALTER TABLE `{$wpdb->prefix}payment_transaction` ADD `amount_purchase` DECIMAL(12,2) DEFAULT NULL ;",
			'billing_address' => "ALTER TABLE `{$wpdb->prefix}payment_transaction` ADD `billing_address` TEXT DEFAULT NULL;",
            'cpf'             => "ALTER TABLE `{$wpdb->prefix}payment_transaction` ADD `cpf` VARCHAR(255) DEFAULT NULL;"
		],
		'ads_activities' => [
			'hash' => "ALTER TABLE `{$wpdb->prefix}ads_activities` ADD hash VARCHAR(255) DEFAULT NULL",
			'trouble' => "ALTER TABLE `{$wpdb->prefix}ads_activities` ADD trouble VARCHAR(40) DEFAULT NULL"
		]
	];

	foreach( $args as $key => $val ) {
		
		$result = $wpdb->get_results(
			$wpdb->prepare(
				"SELECT *
			 	 FROM `information_schema`.`COLUMNS`
			 	 WHERE `TABLE_SCHEMA` = '%s' AND `TABLE_NAME` = '{$wpdb->prefix}{$key}'",
				DB_NAME
			)
		);
		
		$col = [];
		if( count($result) > 0 ) foreach( $result as $column ) {
			$col[] = $column->COLUMN_NAME;
		}
		
		if( count($col) > 0 ) foreach( $val as $k => $v ) {
			if( ! in_array( $k, $col ) )
				$wpdb->query( $v );
		}
	}
}

function ads_alter_transact() {

	global $wpdb;

    $row = $wpdb->get_var(
        $wpdb->prepare(
            "SELECT DATA_TYPE
             FROM `information_schema`.`COLUMNS`
             WHERE `TABLE_SCHEMA` = '%s' AND COLUMN_NAME = 'status'
             AND `TABLE_NAME` = '{$wpdb->prefix}payment_transaction'",
            DB_NAME
        )
    );

    if( ! empty( $row ) && $row == 'enum' ) {

        $charset_collate = $wpdb->get_charset_collate();
        $charset_collate = str_replace('DEFAULT', '', $charset_collate);

        $wpdb->query(
        	"ALTER TABLE `{$wpdb->prefix}payment_transaction`
				CHANGE `status` `status` VARCHAR(15) {$charset_collate} DEFAULT 'abandoned'");

        $wpdb->query(
        	"ALTER TABLE `{$wpdb->prefix}payment_transaction` ADD KEY status (`status`, `fulfillment` (15))");
    }
}

/**
 * Check installed plugin
 */
function ads_installed() {

	if( ! current_user_can( 'install_plugins' ) ) {
        return;
    }

	if ( get_option( 'ads-version', 0 ) < ADS_VERSION ) {
		ads_install();
    }
}
add_action( 'init', 'ads_installed', 0 );

/**
 * When activate plugin
 */
function ads_activate() {

	ads_installed();

	do_action( 'ads_activate' );
}

/**
 * When deactivate plugin
 */
function ads_deactivate() {

	do_action( 'ads_deactivate' );
}