woocommerce/includes/legacy/class-wc-legacy-webhook.php
2021-12-10 12:03:04 +00:00

130 lines
2.5 KiB
PHP

<?php
/**
* Legacy Webhook
*
* Legacy and deprecated functions are here to keep the WC_Legacy_Webhook class clean.
* This class will be removed in future versions.
*
* @version 3.2.0
* @package WooCommerce\Classes
* @category Class
* @author Automattic
*/
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
/**
* Legacy Webhook class.
*/
abstract class WC_Legacy_Webhook extends WC_Data {
/**
* Magic __isset method for backwards compatibility. Legacy properties which could be accessed directly in the past.
*
* @param string $key Item to check.
* @return bool
*/
public function __isset( $key ) {
$legacy_keys = array(
'id',
'status',
'post_data',
'delivery_url',
'secret',
'topic',
'hooks',
'resource',
'event',
'failure_count',
'api_version',
);
if ( in_array( $key, $legacy_keys, true ) ) {
return true;
}
return false;
}
/**
* Magic __get method for backwards compatibility. Maps legacy vars to new getters.
*
* @param string $key Item to get.
* @return mixed
*/
public function __get( $key ) {
wc_doing_it_wrong( $key, 'Webhook properties should not be accessed directly.', '3.2' );
switch ( $key ) {
case 'id' :
$value = $this->get_id();
break;
case 'status' :
$value = $this->get_status();
break;
case 'post_data' :
$value = null;
break;
case 'delivery_url' :
$value = $this->get_delivery_url();
break;
case 'secret' :
$value = $this->get_secret();
break;
case 'topic' :
$value = $this->get_topic();
break;
case 'hooks' :
$value = $this->get_hooks();
break;
case 'resource' :
$value = $this->get_resource();
break;
case 'event' :
$value = $this->get_event();
break;
case 'failure_count' :
$value = $this->get_failure_count();
break;
case 'api_version' :
$value = $this->get_api_version();
break;
default :
$value = '';
break;
} // End switch().
return $value;
}
/**
* Get the post data for the webhook.
*
* @deprecated 3.2.0
* @since 2.2
* @return null|WP_Post
*/
public function get_post_data() {
wc_deprecated_function( 'WC_Webhook::get_post_data', '3.2' );
return null;
}
/**
* Update the webhook status.
*
* @deprecated 3.2.0
* @since 2.2.0
* @param string $status Status to set.
*/
public function update_status( $status ) {
wc_deprecated_function( 'WC_Webhook::update_status', '3.2', 'WC_Webhook::set_status' );
$this->set_status( $status );
$this->save();
}
}