HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux WebLive 5.15.0-79-generic #86-Ubuntu SMP Mon Jul 10 16:07:21 UTC 2023 x86_64
User: ubuntu (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/html/wpmuhibbah_err/wp-content/plugins/woocommerce-checkout-manager/lib/class-backend.php
<?php

namespace QuadLayers\WOOCCM;

/**
 * Backend Class
 */
class Backend {

	protected static $_instance;

	public function __construct() {
		add_action( 'wp_ajax_wooccm_select_search_products', array( $this, 'ajax_select_search_products' ) );
		add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ) );
		add_action( 'admin_menu', array( $this, 'add_menu_page' ) );
		add_filter( 'woocommerce_settings_tabs_array', array( $this, 'add_tab' ), 50 );
	}

	public static function instance() {
		if ( is_null( self::$_instance ) ) {
			self::$_instance = new self();
		}
		return self::$_instance;
	}

	public function ajax_select_search_products() {
		if ( current_user_can( 'manage_woocommerce' ) && check_ajax_referer( 'search-products', 'security' ) && isset( $_REQUEST['term'] ) ) {

			if ( empty( $term ) && isset( $_GET['term'] ) ) {
				$term = (string) wc_clean( wp_unslash( $_GET['term'] ) );
			}

			if ( empty( $term ) ) {
				wp_die();
			}

			if ( ! empty( $_GET['limit'] ) ) {
				$limit = absint( $_GET['limit'] );
			} else {
				$limit = absint( apply_filters( 'woocommerce_json_search_limit', 30 ) );
			}

			$include_ids  = ! empty( $_GET['include'] ) ? array_map( 'absint', (array) wp_unslash( $_GET['include'] ) ) : array();
			$exclude_ids  = ! empty( $_GET['exclude'] ) ? array_map( 'absint', (array) wp_unslash( $_GET['exclude'] ) ) : array();
			$selected_ids = ! empty( $_GET['selected'] ) ? array_map( 'absint', (array) wp_unslash( $_GET['selected'] ) ) : array();

			$include_variations = false;

			$data_store = \WC_Data_Store::load( 'product' );
			$ids        = $data_store->search_products( $term, '', (bool) $include_variations, false, $limit, $include_ids, $exclude_ids + $selected_ids );

			$product_objects = array_filter( array_map( 'wc_get_product', $ids ), 'wc_products_array_filter_readable' );
			$products        = array();

			foreach ( $product_objects as $product_object ) {
				$formatted_name = $product_object->get_formatted_name();
				$managing_stock = $product_object->managing_stock();

				if ( $managing_stock && ! empty( $_GET['display_stock'] ) ) {
					$stock_amount = $product_object->get_stock_quantity();
					/* Translators: %d stock amount */
					$formatted_name .= ' &ndash; ' . sprintf( esc_html__( 'Stock: %d', 'woocommerce' ), wc_format_stock_quantity_for_display( $stock_amount, $product_object ) );
				}

				$products[ $product_object->get_id() ] = rawurldecode( $formatted_name );
			}

			wp_send_json( apply_filters( 'woocommerce_json_search_found_products', $products ) );
		}
	}

	public function enqueue_scripts() {
		$screen = get_current_screen();

		$admin = include_once WOOCCM_PLUGIN_DIR . 'build/backend/js/index.asset.php';

		wp_register_style( 'wooccm-admin-css', plugins_url( 'build/backend/css/style.css', WOOCCM_PLUGIN_FILE ), array(), WOOCCM_PLUGIN_VERSION, 'all' );

		wp_register_script( 'jquery-serializejson', plugins_url( 'assets/backend/js/jquery-serializejson.min.js', WOOCCM_PLUGIN_FILE ), array( 'jquery' ), WOOCCM_PLUGIN_VERSION, true );

		wp_register_script( 'wooccm-admin-js', plugins_url( 'build/backend/js/index.js', WOOCCM_PLUGIN_FILE ), $admin['dependencies'], $admin['version'], true );

		if ( ( isset( $_GET['tab'] ) && WOOCCM_PREFIX === $_GET['tab'] ) || in_array( $screen->id, array( /* 'product', 'edit-product', */'shop_order', 'edit-shop_order', 'woocommerce_page_wc-orders' ) ) ) {
			wp_enqueue_style( 'wooccm-admin-css' );
			wp_enqueue_script( 'wooccm-admin-js' );
			wp_localize_script(
				'wooccm-admin-js',
				'wooccm_admin',
				array(
					'ajax_url' => admin_url( 'admin-ajax.php' ),
					'nonce'    => wp_create_nonce( 'wooccm_search_field' ),
				)
			);
		}
	}

	public function add_tab( $settings_tabs ) {
		$settings_tabs[ WOOCCM_PREFIX ] = esc_html__( 'Checkout', 'woocommerce-checkout-manager' );
		return $settings_tabs;
	}

	public function add_menu_page() {
		add_submenu_page( 'woocommerce', esc_html__( 'Checkout', 'woocommerce-checkout-manager' ), esc_html__( 'Checkout', 'woocommerce-checkout-manager' ), 'manage_woocommerce', admin_url( 'admin.php?page=wc-settings&tab=' . sanitize_title( WOOCCM_PREFIX ) ) );
	}
}