# disco/1.2.18/disco.php

Discount Rules for WooCommerce – Disco | Dynamic Pricing, Conditions, Bulk, Bundle, BOGO, version 1.2.18. 145 lines.

- Page: https://pluginprobe.com/plugins/disco/1.2.18/code/disco.php
- Raw: https://pluginprobe.com/plugins/disco/1.2.18/raw/disco.php
- Modified: 2025-02-13T04:44:38+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/disco/1.2.18/code/disco.php#L10-L20`.

```php
<?php
/**
 * The plugin bootstrap file
 *
 * @link              https://webappick.com
 * @since             1.0.0
 * @package           Disco
 * @wordpress-plugin
 * Plugin Name:       Disco
 * Plugin URI:        https://webappick.com/
 * Description:       Create logical, dynamic and automated discounts for your WooCommerce Store based on product, cart, and cart item information.
 * Version:           1.2.18
 * Author:            WebAppick
 * Author URI:        https://webappick.com/
 * License:           GPLv3 or later
 * License URI:       http://www.gnu.org/licenses/gpl-3.0.html
 * Text Domain:       disco
 * Domain Path:       /languages
 *
 * WP Requirement & Test
 * Requires at least: 4.4
 * Tested up to: 6.7
 * Requires PHP: 5.6
 * Requires Plugins: woocommerce
 *
 * WC Requirement & Test
 * WC requires at least: 3.0
 * WC tested up to: 9.4
 */

// If this file is called directly, abort.
use Disco\Engine\Initialize;
use Micropackage\Requirements\Requirements;

if ( ! defined( 'ABSPATH' ) ) {
	die( 'We\'re sorry, but you can not directly access this file.' );
}

const DISCO_VERSION    = '1.2.18';
const DISCO_TEXTDOMAIN = 'disco';
const DISCO_NAME       = 'Disco';
define( 'DISCO_PLUGIN_ROOT', plugin_dir_path( __FILE__ ) );
const DISCO_PLUGIN_ABSOLUTE = __FILE__;
const DISCO_MIN_PHP_VERSION = '5.6';
const DISCO_WP_VERSION      = '4.4';
const DISCO_DB_VERSION      = '1.0.0';

// WooCommerce has detected that some of your active plugins are incompatible with currently enabled WooCommerce features. Please review the details.
add_action(
	'before_woocommerce_init',
	function () {
		if ( ! class_exists( \Automattic\WooCommerce\Utilities\FeaturesUtil::class ) ) {
			return;
		}

		\Automattic\WooCommerce\Utilities\FeaturesUtil::declare_compatibility( 'custom_order_tables', __FILE__, true );
	}
);

add_action(// @phpstan-ignore-line
	'init',
	static function () {
		load_plugin_textdomain( 'disco', false, dirname( plugin_basename( __FILE__ ) ) . '/languages' );
	}
);

if ( version_compare( PHP_VERSION, DISCO_MIN_PHP_VERSION, '<=' ) ) {
	add_action(// @phpstan-ignore-line
		'admin_init',
		static function () {
			deactivate_plugins( plugin_basename( __FILE__ ) );
		}
	);
	add_action(// @phpstan-ignore-line
		'admin_notices',
		static function () {
			echo wp_kses_post(
				sprintf(
					'<div class="notice notice-error"><p>%s</p></div>',
					__( 'Disco requires PHP 5.6 or newer.', 'disco' )// @phpstan-ignore-line
				)
			);
		}
	);

	// Return early to prevent loading the plugin.
	return;
}

$disco_libraries = require DISCO_PLUGIN_ROOT . 'vendor/autoload.php'; //phpcs:ignore

add_action('woocommerce_init', function () {
	require_once DISCO_PLUGIN_ROOT . 'functions/common.php';
	require_once DISCO_PLUGIN_ROOT . 'functions/cart.php';
	require_once DISCO_PLUGIN_ROOT . 'functions/product.php';
	require_once DISCO_PLUGIN_ROOT . 'functions/order.php';
	require_once DISCO_PLUGIN_ROOT . 'functions/shipping.php';
});


$requirements = new Requirements(
	'Disco',
	array(
		'php'            => DISCO_MIN_PHP_VERSION,
		'php_extensions' => array( 'mbstring' ),
		'wp'             => DISCO_WP_VERSION,
		'plugins'        => array(
			array(
				'file'    => 'woocommerce/woocommerce.php',
				'name'    => 'WooCommerce',
				'version' => '3.5',
			),
		),
	)
);

if ( ! $requirements->satisfied() ) {
	$requirements->print_notice();

	return;
}

if ( ! wp_installing() ) {
	register_activation_hook(
		DISCO_TEXTDOMAIN . '/' . DISCO_TEXTDOMAIN . '.php',
		array(
			new \Disco\Backend\ActDeact(),
			'activate',
		)
	);
	register_deactivation_hook(
		DISCO_TEXTDOMAIN . '/' . DISCO_TEXTDOMAIN . '.php',
		array(
			new \Disco\Backend\ActDeact(),
			'deactivate',
		)
	);
	add_action(// @phpstan-ignore-line
		'plugins_loaded',
		static function () use ( $disco_libraries ) {
			new Initialize( $disco_libraries );
		}
	);
}

```
