1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
<?php
namespace SIW\Plato;
abstract class Import extends Plato_Interface {
protected $data = [];
public function __construct() {
parent::__construct();
$this->add_query_arg_webkey();
}
protected function add_query_arg_webkey() {
$this->add_query_arg( 'organizationWebserviceKey', $this->webkey );
}
protected function retrieve_xml() {
$args = [ 'timeout' => 60 ];
$this->http_response = wp_safe_remote_get( $this->endpoint_url, $args );
if ( false == $this->is_valid_response() ) {
return false;
}
$this->xml_response = simplexml_load_string( wp_remote_retrieve_body( $this->http_response ) );
return true;
}
abstract protected function process_xml();
public function run() {
$this->log( 'info', sprintf( 'Start %s', $this->name ) );
if ( ! $this->retrieve_xml() ) {
return false;
}
$this->process_xml();
$this->log( 'info', sprintf( 'Eind %s', $this->name ) );
return $this->data;
}
}