HEX
Server: Apache
System: Linux webm003.cluster111.gra.hosting.ovh.net 6.18.42-ovh-vps-grsec-zfs+ #1 SMP PREEMPT_DYNAMIC Wed Aug 5 15:59:48 CEST 2026 x86_64
User: assotraipi (849654)
PHP: 5.4.45
Disabled: _dyuweyrj4,_dyuweyrj4r,dl
Upload Files
File: /home/assotraipi/www/wp-content/plugins/download-monitor/src/Util/PageCreator.php
<?php

namespace WPChill\DownloadMonitor\Util;

class PageCreator {

	/**
	 * Create no access page
	 *
	 * @return int
	 */
	public function create_no_access_page() {
		return $this->setup_page(
			__( 'No Access', 'download-monitor' ),
			'[dlm_no_access]',
			'dlm_no_access_page'
		);
	}

	/**
	 * Create cart page
	 *
	 * @return int
	 */
	public function create_cart_page() {
		return $this->setup_page(
			__( 'Cart', 'download-monitor' ),
			'[dlm_cart]',
			'dlm_page_cart'
		);
	}

	/**
	 * Create checkout page
	 *
	 * @return int
	 */
	public function create_checkout_page() {
		return $this->setup_page(
			__( 'Checkout', 'download-monitor' ),
			'[dlm_checkout]',
			'dlm_page_checkout'
		);
	}

	/**
	 * Creates page and set the ID as option with given option key
	 *
	 * @param string $title
	 * @param string $content
	 * @param string $option
	 *
	 * @return int
	 */
	private function setup_page( $title, $content, $option ) {
		$new_page_id = $this->create_page( $title, $content );

		if ( 0 !== $new_page_id ) {
			update_option( $option, absint( $new_page_id ) );
		}

		return $new_page_id;
	}

	/**
	 * Create page with given title and content, returns newly created ID
	 *
	 * @param string $title
	 * @param string $content
	 *
	 * @return int
	 */
	private function create_page( $title, $content ) {
		// create no-access listing page if not exists
		$slug = sanitize_title( $title );
		$page = get_page_by_path( $slug );

		// check if listings page exists
		if ( null == $page ) {

			// create page
			$page_id = wp_insert_post( array(
				'post_type'    => 'page',
				'post_title'   => $title,
				'post_content' => $content,
				'post_status'  => 'publish'
			) );
		} else {
			$page_id = $page->ID;
		}

		if ( is_wp_error( $page_id ) ) {
			$page_id = 0;
		}

		return $page_id;
	}

}