Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
File Manager
/
wp-content
/
plugins
/
woocommerce-paypal-payments
/
modules
/
ppcp-api-client
/
src
/
Entity
:
Webhook.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php /** * The Webhook object. * * @package WooCommerce\PayPalCommerce\ApiClient\Entity */ declare(strict_types=1); namespace WooCommerce\PayPalCommerce\ApiClient\Entity; /** * Class Webhook */ class Webhook { /** * The ID of the webhook. * * @var string */ private $id; /** * The URL of the webhook. * * @var string */ private $url; /** * The event types. * * @var object[] */ private $event_types; /** * Webhook constructor. * * @param string $url The URL of the webhook. * @param object[] $event_types The associated event types. * @param string $id The id of the webhook. */ public function __construct( string $url, array $event_types, string $id = '' ) { $this->url = $url; $this->event_types = $event_types; $this->id = $id; } /** * Returns the id of the webhook. * * @return string */ public function id(): string { return $this->id; } /** * Returns the URL listening to the hook. * * @return string */ public function url(): string { return $this->url; } /** * Returns the event types. * * @return object[] */ public function event_types(): array { return $this->event_types; } /** * Returns the human-friendly names of the event types. * * @return string[] */ public function humanfriendly_event_names(): array { return array_map( function ( $event ): string { return Webhook::get_humanfriendly_event_name( $event->name ); }, $this->event_types ); } /** * Converts event names to more human-friendly form. * * @param string $name The event name like 'CHECKOUT.ORDER.APPROVED'. * @return string */ public static function get_humanfriendly_event_name( string $name ): string { return strtolower( str_replace( '.', ' ', $name ) ); } /** * Returns the object as array. * * @return array */ public function to_array(): array { $data = array( 'url' => $this->url(), 'event_types' => $this->event_types(), ); if ( $this->id() ) { $data['id'] = $this->id(); } return $data; } }