WordPress. API rest, woocommerce obtener datos de api externa,

categoria-WordPress

Cómo interconectar tus sistemas con WooCommerce: https://www.acceseo.com/como-interconectar-tus-sistemas-con-woocommerce.html

DECODECMS YOUTUBE:

https://www.youtube.com/playlist?list=PLdrC-D_EHDhTZbJkksVn-rZi1XEQKeOv3

Actualizar el stock de productos usando la API de WooCommerce:

https://www.youtube.com/watch?v=KfUL7SJ8RJM – https://decodecms.com/actualizar-el-stock-de-productos-usando-la-api-de-woocommerce/

Agregar datos a los Endpoints de la API de WooCommerce:

https://www.youtube.com/watch?v=6QxlwbeCMHE – https://decodecms.com/agregar-datos-a-los-endpoints-de-la-api-de-woocommerce/

La API de WooCommerce: https://woocommerce.github.io/woocommerce-rest-api-docs/#introduction

La API REST de WooCommerce en una Tienda Online WordPress – https://www.vitalinnova.com/la-api-woocommerce-tienda-online-wordpress/

Enviar información de pedido en Woocommerce a través de la API – https://foro.wpargentina.org/t/enviar-informacion-de-pedido-en-woocommerce-a-traves-de-la-api/3690

wordpress “file_get_contents(‘php://input’)”
https://www.codegrepper.com/code-examples/php/frameworks/wordpress/file_get_contents%28+%27php%3A%2F%2Finput%27+%29+wordpress
https://www.php.net/manual/es/wrappers.php
https://www.codegrepper.com/code-examples/php/file_get_contents%28%27php+%2F%2Finput%27%29
https://stackoverflow.com/questions/19146984/file-get-contentsphp-input-always-returns-an-empty-string
otra forma de leer el input: https://stackoverflow.com/questions/33044189/parse-woocommerce-webhook-json

function doPost(request) {
var json = request.postData.getDataAsString();
var obj = JSON.parse(json);
// getting some of the Woocommerce data just as an example
// Hook was fired after order.created
var id = obj.order.id;
var orderNumber = obj.order.order_number;
var payMethod = obj.order.payment_details.method_title;
?php
// Original Answer
header('Content-Type: application/json');
$request = file_get_contents('php://input');
$req_dump = print_r( $request, true );
$fp = file_put_contents( 'request.log', $req_dump );
// Updated Answer
if($json = json_decode(file_get_contents("php://input"), true)){
$data = $json;
}
print_r($data);
?>

CON LO QUE EMPECE A CREAR EL PHP
https://www.acceseo.com/como-interconectar-tus-sistemas-con-woocommerce.html
WoocommerceStockUpdater
https://gitlab.com/-/snippets/2037867
Product webhook
https://gitlab.com/-/snippets/2037900

HOOK.IO
woocommerce_webhook_topic_hooks
http://hookr.io/filters/woocommerce_webhook_topic_hooks/

$payload = file_get_contents('php://input');
$receivedHeaders = apache_request_headers();
$receivedHash = $receivedHeaders['X-WC-Webhook-Signature'];
$generatedHash = base64_encode(hash_hmac('sha256', $payload, $secret, true));
if($receivedHash === $generatedHash):
//Verified, continue your code
else:
//exit
endif;

EL CÓDIGO QUE HE USADO EN EL WEBHOOK DE TIENDAAPI

    $payload = file_get_contents('php://input');
    $product = json_decode($payload);
    $secret = 'ffsdafdsafasffasfdk'; //'your-secret-here';
    $receivedHash = $_SERVER['HTTP_X_WC_WEBHOOK_SIGNATURE'] ?? 'false';
    $generatedHash = base64_encode(hash_hmac('sha256', $payload, $secret, true));
    if($receivedHash !== $generatedHash) {        
        echo 'frase secret no coindice ';        
        die();
    }
 

https://solve360.com/help/integration-walkthroughs/solve-webhooks-examples/

Fetching headers via apache_request_headers() http://php.net/manual/en/function.apache-request-headers.php

donde en webhook aparece si no funciona el, se pone disabled
explicacion:
https://robotninja.com/blog/test-woocommerce-webhooks/
https://woocommerce.github.io/code-reference/files/woocommerce-includes-class-wc-webhook.html#source-view.695
woocommerce_webhook_status
https://docs.wpdebuglog.com/plugin/woocommerce/5.3.0/filter/woocommerce_webhook_status/#
https://www.wp-plugin-api.com/hook/woocommerce_webhook_status/

hacer debug de esa parte del webhook, test
https://robotninja.com/blog/test-woocommerce-webhooks/
https://learnwoo.com/webhooks-in-woocommerce/
https://growdevelopment.com/woocommerce-webhooks/ +++++++++++++++++++++++

desahabilitar o poner actvio o disabed un webhook por codigo php
woocommerce webhook code for disabled
la clase:
https://woocommerce.github.io/code-reference/classes/WC-Webhook.html
https://woocommerce.github.io/code-reference/classes/WC-Legacy-Webhook.html
https://woocommerce.github.io/code-reference/classes/WC-Webhook.html#method_set_status ++++no se usar esto

WooCommerce Code Reference
https://woocommerce.github.io/code-reference/index.html

actualizar webhook
https://github.com/woocommerce/woocommerce/blob/75fce4a5fa620bc9fa810a079b25cb79de0edef8/includes/wc-update-functions.php#L1504
function wc_update_330_webhooks()
function wc_update_330_webhooks() {
register_post_type( ‘shop_webhook’ );

// Map statuses from post_type to Webhooks CRUD.
$statuses = array(
    'publish' => 'active',
    'draft'   => 'paused',
    'pending' => 'disabled',
);

$posts = get_posts( array(
    'posts_per_page' => -1,
    'post_type'      => 'shop_webhook',
    'post_status'    => 'any',
) );

foreach ( $posts as $post ) {
    $webhook = new WC_Webhook();
    $webhook->set_name( $post->post_title );
    $webhook->set_status( isset( $statuses[ $post->post_status ] ) ? $statuses[ $post->post_status ] : 'disabled' );
    $webhook->set_delivery_url( get_post_meta( $post->ID, '_delivery_url', true ) );
    $webhook->set_secret( get_post_meta( $post->ID, '_secret', true ) );
    $webhook->set_topic( get_post_meta( $post->ID, '_topic', true ) );
    $webhook->set_api_version( get_post_meta( $post->ID, '_api_version', true ) );
    $webhook->set_user_id( $post->post_author );
    $webhook->set_pending_delivery( false );
    $webhook->save();

    wp_delete_post( $post->ID, true );
}

unregister_post_type( 'shop_webhook' );

}

actualizar , crear por API:
https://woocommerce.github.io/woocommerce-rest-api-docs/#webhooks

function createWebhook($userID,$topic,$secret,$deliveryURL,$status)
{
$webhook = new WC_Webhook();
$webhook->set_user_id($userID); // User ID used while generating the webhook payload.
$webhook->set_topic( $topic ); // Event used to trigger a webhook.
$webhook->set_secret( $secret ); // Secret to validate webhook when received.
$webhook->set_delivery_url( $deliveryURL ); // URL where webhook should be sent.
$webhook->set_status( $status ); // Webhook status.
$save = $webhook->save();
return $save;
}
global $wpdb;
$results = $wpdb->get_results( "SELECT webhook_id, delivery_url FROM {$wpdb->prefix}wc_webhooks" );
foreach($results as $result)
{
if(strpos($result->delivery_url, 'domain.com') !== false)
{
$wh = new WC_Webhook();
$wh->set_id($result->webhook_id);
$wh->delete();
}
}

otra forma:

$data_store = WC_Data_Store::load( 'webhook' );
$webhooks = $data_store->search_webhooks(); 

wordpress “webhook” error 404
https://wordpress.org/search/webhook+404

WooCommerce Webhooks Custom / Action no se guarda // WooCommerce Webhooks Custom/Action not saving
https://stackoverflow.com/questions/32313279/woocommerce-webhooks-custom-action-not-saving

function custom_woocommerce_webhook_topics( $topic ) {
$topic['order.refunded'] = array(
'woocommerce_process_shop_order_meta',
'woocommerce_api_edit_order',
'woocommerce_order_edit_status',
'woocommerce_order_status_changed'
);
return $topic;
}
add_filter( 'woocommerce_webhook_topic_hooks', 'custom_woocommerce_webhook_topics', 10, 1 );

https://stackoverflow.com/search?q=woocommerce+webhook+

Stock
How To Use The WooCommerce API
https://sgwebpartners.com/how-to-use-woocommerce-api/ ++++++++++++en ingles, merece la pena verlo traducido

Cómo interconectar tus sistemas con WooCommerce – Actualiza stock
https://www.acceseo.com/como-interconectar-tus-sistemas-con-woocommerce.html

Creación de productos woocommerce utilizando la API REST de WordPress
http://es.wordpressask.com/creacion-de-productos-woocommerce-utilizando-la-api-rest-de-wordpress.html

Actualizar el stock de productos usando la API de WooCommerce DECODE en bloque ejecutando un fichero de php en servidor con cron
https://www.youtube.com/watch?v=KfUL7SJ8RJM
https://decodecms.com/actualizar-el-stock-de-productos-usando-la-api-de-woocommerce/

,

cesar
Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.