PHP 8.2.31
Preview: MarketingOverview.php Size: 3.36 KB
/home/nshryvcy/taramarriagebureau.com/wp-content/plugins/woocommerce/src/Admin/API/MarketingOverview.php

<?php
/**
 * REST API Marketing Overview Controller
 *
 * Handles requests to /marketing/overview.
 */

namespace Automattic\WooCommerce\Admin\API;

use Automattic\WooCommerce\Admin\Marketing\InstalledExtensions;
use Automattic\WooCommerce\Admin\PluginsHelper;

defined( 'ABSPATH' ) || exit;

/**
 * Marketing Overview Controller.
 *
 * @internal
 * @extends WC_REST_Data_Controller
 */
class MarketingOverview extends \WC_REST_Data_Controller {

	/**
	 * Endpoint namespace.
	 *
	 * @var string
	 */
	protected $namespace = 'wc-admin';

	/**
	 * Route base.
	 *
	 * @var string
	 */
	protected $rest_base = 'marketing/overview';

	/**
	 * Register routes.
	 */
	public function register_routes() {
		register_rest_route(
			$this->namespace,
			'/' . $this->rest_base . '/activate-plugin',
			array(
				array(
					'methods'             => \WP_REST_Server::EDITABLE,
					'callback'            => array( $this, 'activate_plugin' ),
					'permission_callback' => array( $this, 'install_plugins_permissions_check' ),
					'args'                => array(
						'plugin' => array(
							'required'          => true,
							'type'              => 'string',
							'validate_callback' => 'rest_validate_request_arg',
							'sanitize_callback' => 'sanitize_title_with_dashes',
						),
					),
				),
				'schema' => array( $this, 'get_item_schema' ),
			)
		);

		register_rest_route(
			$this->namespace,
			'/' . $this->rest_base . '/installed-plugins',
			array(
				array(
					'methods'             => \WP_REST_Server::READABLE,
					'callback'            => array( $this, 'get_installed_plugins' ),
					'permission_callback' => array( $this, 'get_items_permissions_check' ),
				),
				'schema' => array( $this, 'get_public_item_schema' ),
			)
		);
	}

	/**
	 * Return installed marketing extensions data.
	 *
	 * @param \WP_REST_Request $request Request data.
	 *
	 * @return \WP_Error|\WP_REST_Response
	 */
	public function activate_plugin( $request ) {
		$plugin_slug = $request->get_param( 'plugin' );

		if ( ! PluginsHelper::is_plugin_installed( $plugin_slug ) ) {
			return new \WP_Error( 'woocommerce_rest_invalid_plugin', __( 'Invalid plugin.', 'woocommerce' ), 404 );
		}

		$result = activate_plugin( PluginsHelper::get_plugin_path_from_slug( $plugin_slug ) );

		if ( ! is_null( $result ) ) {
			return new \WP_Error( 'woocommerce_rest_invalid_plugin', __( 'The plugin could not be activated.', 'woocommerce' ), 500 );
		}

		// IMPORTANT - Don't return the active plugins data here.
		// Instead we will get that data in a separate request to ensure they are loaded.
		return rest_ensure_response(
			array(
				'status' => 'success',
			)
		);
	}

	/**
	 * Check if a given request has access to manage plugins.
	 *
	 * @param \WP_REST_Request $request Full details about the request.
	 *
	 * @return \WP_Error|boolean
	 */
	public function install_plugins_permissions_check( $request ) {
		if ( ! current_user_can( 'install_plugins' ) ) {
			return new \WP_Error( 'woocommerce_rest_cannot_update', __( 'Sorry, you cannot manage plugins.', 'woocommerce' ), array( 'status' => rest_authorization_required_code() ) );
		}

		return true;
	}

	/**
	 * Return installed marketing extensions data.
	 *
	 * @param \WP_REST_Request $request Request data.
	 *
	 * @return \WP_Error|\WP_REST_Response
	 */
	public function get_installed_plugins( $request ) {
		return rest_ensure_response( InstalledExtensions::get_data() );
	}

}

Directory Contents

Dirs: 3 × Files: 45

Name Size Perms Modified Actions
AI DIR
- drwxr-xr-x 2026-03-03 06:25:15
Edit Download
Reports DIR
- drwxr-xr-x 2026-03-03 06:25:15
Edit Download
Templates DIR
- drwxr-xr-x 2026-03-03 06:25:15
Edit Download
2.15 KB lrw-r--r-- 2026-03-03 06:25:15
Edit Download
3.40 KB lrw-r--r-- 2026-03-03 06:25:15
Edit Download
2.11 KB lrw-r--r-- 2026-03-03 06:25:15
Edit Download
939 B lrw-r--r-- 2026-03-03 06:25:15
Edit Download
1.12 KB lrw-r--r-- 2026-03-03 06:25:15
Edit Download
4.15 KB lrw-r--r-- 2026-03-03 06:25:15
Edit Download
1.82 KB lrw-r--r-- 2026-03-03 06:25:15
Edit Download
1.70 KB lrw-r--r-- 2026-03-03 06:25:15
Edit Download
9.29 KB lrw-r--r-- 2026-03-03 06:25:15
Edit Download
5.15 KB lrw-r--r-- 2026-03-03 06:25:15
Edit Download
18.22 KB lrw-r--r-- 2026-03-03 06:25:15
Edit Download
4.84 KB lrw-r--r-- 2026-03-03 06:25:15
Edit Download
9.64 KB lrw-r--r-- 2026-03-03 06:25:15
Edit Download
6.02 KB lrw-r--r-- 2026-03-03 06:25:15
Edit Download
5.74 KB lrw-r--r-- 2026-03-03 06:25:15
Edit Download
3.36 KB lrw-r--r-- 2026-03-03 06:25:15
Edit Download
5.94 KB lrw-r--r-- 2026-03-03 06:25:15
Edit Download
2.10 KB lrw-r--r-- 2026-03-03 06:25:15
Edit Download
2.39 KB lrw-r--r-- 2026-03-03 06:25:15
Edit Download
25.79 KB lrw-r--r-- 2026-03-03 06:25:15
Edit Download
2.38 KB lrw-r--r-- 2026-03-03 06:25:15
Edit Download
2.58 KB lrw-r--r-- 2026-03-03 06:25:15
Edit Download
12.98 KB lrw-r--r-- 2026-03-03 06:25:15
Edit Download
1.94 KB lrw-r--r-- 2026-03-03 06:25:15
Edit Download
1.80 KB lrw-r--r-- 2026-03-03 06:25:15
Edit Download
22.83 KB lrw-r--r-- 2026-03-03 06:25:15
Edit Download
32.03 KB lrw-r--r-- 2026-03-03 06:25:15
Edit Download
18.09 KB lrw-r--r-- 2026-03-03 06:25:15
Edit Download
9.69 KB lrw-r--r-- 2026-03-03 06:25:15
Edit Download
10.13 KB lrw-r--r-- 2026-03-03 06:25:15
Edit Download
5.86 KB lrw-r--r-- 2026-03-03 06:25:15
Edit Download
21.22 KB lrw-r--r-- 2026-03-03 06:25:15
Edit Download
4.46 KB lrw-r--r-- 2026-03-03 06:25:15
Edit Download
4.36 KB lrw-r--r-- 2026-03-03 06:25:15
Edit Download
458 B lrw-r--r-- 2026-03-03 06:25:15
Edit Download
3.06 KB lrw-r--r-- 2026-03-03 06:25:15
Edit Download
1.30 KB lrw-r--r-- 2026-03-03 06:25:15
Edit Download
9.73 KB lrw-r--r-- 2026-03-03 06:25:15
Edit Download
14.08 KB lrw-r--r-- 2026-03-03 06:25:15
Edit Download
6.03 KB lrw-r--r-- 2026-03-03 06:25:15
Edit Download
878 B lrw-r--r-- 2026-03-03 06:25:15
Edit Download
4.20 KB lrw-r--r-- 2026-03-03 06:25:15
Edit Download
5.74 KB lrw-r--r-- 2026-03-03 06:25:15
Edit Download
4.90 KB lrw-r--r-- 2026-03-03 06:25:15
Edit Download
6.12 KB lrw-r--r-- 2026-03-03 06:25:15
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).