woothemes/woocommerce

View on GitHub
includes/legacy/class-wc-legacy-webhook.php

Summary

Maintainability
A
3 hrs
Test Coverage
<?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();
    }
}