コード例 #1
0
function wprt_screen()
{
    echo '<div class="wrap"><h2>WP Remote Test</h2>';
    $action = isset($_POST['action']) ? $_POST['action'] : null;
    $url = isset($_POST['url']) ? $_POST['url'] : null;
    $method = isset($_POST['method']) ? $_POST['method'] : null;
    $useragent = isset($_POST['useragent']) ? $_POST['useragent'] : null;
    if ($action == 'xmlrpc') {
        echo "<h3>Results</h3>";
        require_once ABSPATH . WPINC . '/class-IXR.php';
        require_once ABSPATH . WPINC . '/class-wp-http-ixr-client.php';
        $client = new WP_HTTP_IXR_Client($url);
        $client->useragent = $useragent;
        if (!$client->query($method)) {
            print_r($client->error);
        } else {
            print_r($client->getResponse());
        }
    }
    ?>
  <h3>XML/RPC (WP_HTTP_IXR_Client)</h3>
  <form id="posts-filter" action="" method="POST">
    <p>
      <label>URL</label><br />
      <input type="text" name="url" style="width: 360px;" value="http://apps.meow.fr/xmlrpc.php"><br />
    </p>
    <p>
      <label>Method</label><br />
      <input type="text" name="method" style="width: 360px;" value="meow_sales.auth"><br />
    </p>
    <p>
      <label>User Agent</label><br />
      <input type="text" name="useragent" style="width: 360px;" value="MeowApps"><br />
    </p>
    <input type="hidden" name="action" value="xmlrpc">
    <input type="submit" class="button" value="Query">
  </form>
  <?php 
    echo '</div>';
}
コード例 #2
0
/**
 * Send a pingback.
 *
 * @since 1.2.0
 *
 * @global string $wp_version
 *
 * @param string $server Host of blog to connect to.
 * @param string $path Path to send the ping.
 */
function weblog_ping($server = '', $path = '')
{
    global $wp_version;
    include_once ABSPATH . WPINC . '/class-IXR.php';
    include_once ABSPATH . WPINC . '/class-wp-http-ixr-client.php';
    // using a timeout of 3 seconds should be enough to cover slow servers
    $client = new WP_HTTP_IXR_Client($server, !strlen(trim($path)) || '/' == $path ? false : $path);
    $client->timeout = 3;
    $client->useragent .= ' -- WordPress/' . $wp_version;
    // when set to true, this outputs debug messages by itself
    $client->debug = false;
    $home = trailingslashit(home_url());
    if (!$client->query('weblogUpdates.extendedPing', get_option('blogname'), $home, get_bloginfo('rss2_url'))) {
        // then try a normal ping
        $client->query('weblogUpdates.ping', get_option('blogname'), $home);
    }
}
コード例 #3
0
ファイル: wp-retina-2x.php プロジェクト: radscheit/unicorn
function wr2x_validate_pro($subscr_id)
{
    if (empty($subscr_id)) {
        delete_option('wr2x_pro_serial', "");
        delete_option('wr2x_pro_status', "");
        set_transient('wr2x_validated', false, 0);
        return false;
    }
    require_once wr2x_get_wordpress_root() . WPINC . '/class-IXR.php';
    require_once wr2x_get_wordpress_root() . WPINC . '/class-wp-http-ixr-client.php';
    $client = new WP_HTTP_IXR_Client('http://apps.meow.fr/xmlrpc.php');
    if (!$client->query('meow_sales.auth', $subscr_id, 'retina', get_site_url())) {
        update_option('wr2x_pro_serial', "");
        update_option('wr2x_pro_status', "A network error: " . $client->getErrorMessage());
        set_transient('wr2x_validated', false, 0);
        return false;
    }
    $post = $client->getResponse();
    if (!$post['success']) {
        if ($post['message_code'] == "NO_SUBSCRIPTION") {
            $status = __("Your serial does not seem right.");
        } else {
            if ($post['message_code'] == "NOT_ACTIVE") {
                $status = __("Your subscription is not active.");
            } else {
                if ($post['message_code'] == "TOO_MANY_URLS") {
                    $status = __("Too many URLs are linked to your subscription.");
                } else {
                    $status = "There is a problem with your subscription.";
                }
            }
        }
        update_option('wr2x_pro_serial', "");
        update_option('wr2x_pro_status', $status);
        set_transient('wr2x_validated', false, 0);
        return false;
    }
    set_transient('wr2x_validated', $subscr_id, 3600 * 24 * 100);
    update_option('wr2x_pro_serial', $subscr_id);
    update_option('wr2x_pro_status', __("Your subscription is enabled."));
    return true;
}
コード例 #4
0
 /**
  * Send an XMLRPC request to the Catalyst API.
  *
  * @param string $request
  * @param array  $args
  *
  * @return bool|IXR_Error
  */
 protected function _send_request($request, $args)
 {
     $client = new WP_HTTP_IXR_Client(trailingslashit(CATALYST_URL) . 'xmlrpc.php');
     $response = $client->query("catalyst.{$request}", $args);
     if (false === $response) {
         // store error for use in implementation
         $this->request_error = isset($client->error->message) ? $client->error->message : '';
         return $client->error;
     }
     return $client->getResponse();
 }
コード例 #5
0
ファイル: Admin.php プロジェクト: stefanolaru/optinoid
 function infusionsoft_lists()
 {
     // Include WordPress libraries to handle XML-RPC
     require_once ABSPATH . '/wp-includes/class-IXR.php';
     require_once ABSPATH . '/wp-includes/class-wp-http-ixr-client.php';
     // get options
     $options = get_option('optinoid_options');
     // Initialize the client
     $client = new WP_HTTP_IXR_Client('https://' . $options['infusionsoft_subdomain'] . '.infusionsoft.com/api/xmlrpc');
     $client->query('WebFormService.getMap', $options['infusionsoft_api']);
     $response = $client->getResponse();
     // empty list array
     $lists = array();
     if (!empty($response['faultCode'])) {
         wp_send_json(array('error' => $response['faultString']));
     } else {
         if (!empty($response)) {
             foreach ($response as $k => $v) {
                 $lists[$k]['id'] = $k;
                 $lists[$k]['name'] = $v;
             }
         }
         wp_send_json($lists);
     }
     wp_die();
 }
コード例 #6
0
ファイル: Api.php プロジェクト: stefanolaru/optinoid
 public function infusionsoft_subscribe($list_id, $email, $name = null)
 {
     // Include WordPress libraries to handle XML-RPC
     require_once ABSPATH . '/wp-includes/class-IXR.php';
     require_once ABSPATH . '/wp-includes/class-wp-http-ixr-client.php';
     // get options
     $options = get_option('optinoid_options');
     // Initialize the client
     $client = new WP_HTTP_IXR_Client('https://' . $options['infusionsoft_subdomain'] . '.infusionsoft.com/api/xmlrpc');
     $first_name = null;
     $last_name = null;
     if (!empty($name)) {
         $name_arr = explode(' ', $name);
         if (!empty($name_arr[0])) {
             $first_name = $name_arr[0];
         }
         if (!empty($name_arr[1])) {
             $last_name = $name_arr[1];
         }
     }
     $client->query('WebFormService.getHTML', $options['infusionsoft_api'], $list_id);
     $dom = new DOMDocument();
     $dom->loadHTML($client->getResponse());
     $inputs = $dom->getelementsbytagname('input');
     $data = array();
     foreach ($inputs as $input) {
         $name = $input->getAttribute('name');
         if ($name == 'inf_field_Email') {
             $data[$name] = $email;
         } elseif ($name == 'inf_field_FirstName') {
             $data[$name] = $first_name;
         } elseif ($name == 'inf_field_LastName') {
             $data[$name] = $last_name;
         } else {
             $data[$name] = $input->getAttribute('value');
         }
     }
     $endpoint = 'https://' . $options['infusionsoft_subdomain'] . '.infusionsoft.com/app/form/process/' . $data['inf_form_xid'];
     $response = wp_remote_post($endpoint, array('body' => $data));
 }