HEX
Server: Apache/2.4.65 (Ubuntu)
System: Linux ielts-store-v2 6.8.0-1036-gcp #38~22.04.1-Ubuntu SMP Thu Aug 14 01:19:18 UTC 2025 x86_64
User: root (0)
PHP: 7.2.34-54+ubuntu20.04.1+deb.sury.org+1
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,
Upload Files
File: /var/www/html/ielts-store/wp-content/plugins/woocommerce-zapier/src/Webhook/Trigger/Trigger.php
<?php

namespace OM4\WooCommerceZapier\Webhook\Trigger;

use OM4\WooCommerceZapier\Webhook\Trigger\Definition;

defined( 'ABSPATH' ) || exit;


/**
 * Implements an individual REST API based Trigger definition.
 *
 * A trigger is an event that users can use to send data to Zapier.
 *
 * @since 2.2.0
 */
class Trigger implements Definition {

	/**
	 * Trigger Key.
	 *
	 * Must begin a-z lowercase characters only, in the format {$resource_key}.key
	 *
	 * Eg order.updated, coupon.created, order.paid, etc
	 *
	 * @var string
	 */
	protected $key;

	/**
	 * Trigger Name.
	 *
	 * @var string
	 */
	protected $name;

	/**
	 * List of WooCommerce hooks/actions that this trigger should fire on.
	 *
	 * All actions need a resource ID as the first argument when the action is called.
	 *
	 * @var string[]
	 */
	protected $actions;

	/**
	 * Trigger constructor.
	 *
	 * @param string   $key Trigger Key.
	 * @param string   $name Trigger Name.
	 * @param string[] $actions Array of WooCommerce hooks/actions that this trigger should fire on.
	 */
	public function __construct( $key, $name, $actions ) {
		$this->key     = $key;
		$this->name    = $name;
		$this->actions = $actions;
	}

	/**
	 * {@inheritDoc}
	 */
	public function get_key() {
		return $this->key;
	}

	/**
	 * {@inheritDoc}
	 */
	public function get_event() {
		$data = $this->get_topic_parts();
		if ( false === $data ) {
			return false;
		}
		return $data['event'];
	}

	/**
	 * {@inheritDoc}
	 */
	public function get_resource() {
		$data = $this->get_topic_parts();
		if ( false === $data ) {
			return false;
		}
		return $data['resource'];
	}

	/**
	 * Get this trigger's webhook topic details.
	 *
	 * @return array|false
	 */
	protected function get_topic_parts() {
		$data = explode( '.', $this->get_key() );
		if ( 2 !== count( $data ) ) {
			return false;
		}
		return array(
			'resource' => $data[0],
			'event'    => $data[1],
		);
	}

	/**
	 * {@inheritDoc}
	 */
	public function get_name() {
		return $this->name;
	}

	/**
	 * {@inheritDoc}
	 */
	public function get_actions() {
		return $this->actions;
	}
}