Вытащить детали доставки из одного плагина Wordpress в другой - PullRequest
0 голосов
/ 16 января 2020

Я считаю, что я близок, но совершенно не уверен, так как мои ограниченные знания php основаны на пробах и ошибках. Я пытаюсь извлечь данные из плагина, который создает мой ярлык доставки, в плагин, который отслеживает доставку. В частности, Elex EasyPost в расширенное отслеживание доставки.

У меня есть пример кода для интеграции с AST здесь:

<?php
add_action( 'woocommerce_shipstation_shipnotify', 'add_tracking_information_into_order', 10, 2  );  
function add_tracking_information_into_order($order, $tracking_details){
    $order_id  = $order->get_id();
    $args = array(
        'tracking_provider'        => $tracking_details['carrier'],
        'tracking_number'          => wc_clean( $tracking_details['tracking_number'] ),
        'date_shipped'             => wc_clean( $tracking_details['ship_date'] ),
        'status_shipped'           => 1,
    );
    $ast = new WC_Advanced_Shipment_Tracking_Actions;
    $tracking_item = $ast->insert_tracking_item( $order_id, $args );
}

Это должно быть похоже, но, очевидно, мне нужно заменить ловушку и элементы в массиве. Вот что Elex послал мне, когда его спросили о хуках, которые они используют.

get_post_meta($order_id, ‘wf_easypost_labels’);

Sample output:

array(

0=>(‘url’=>label_url,’tracking_number’=> (string)’tracking code’,’integrator_txn_id’=> ‘integerator_id’,’shipment_id’=>’package_shipment_id’,’order_date’=>order_date,’carrier’=>EX:USPS,”link”=>tracking_link,);//First package

1=>(‘url’=>label_url,’tracking_number’=> (string)’tracking code’,’integrator_txn_id’=> ‘integerator_id’,’shipment_id’=>’package_shipment_id’,’order_date’=>order_date,’carrier’=>EX:USPS,”link”=>tracking_link,);//Second package

)

Итак, вот моя попытка использовать их массив в моем собственном фрагменте:

<?php
add_action( 'woocommerce_checkout_update_order_meta', 'add_tracking_information_into_order', 10, 2  );
function add_tracking_information_into_order($order, $myship_func){
    $myship_func = get_post_meta($order_id, 'wf_easypost_labels');
    $order_id  = $order->get_id();
    $args = array(
        'tracking_provider'        => $myship_func['carrier'],
        'tracking_number'          => wc_clean($myship_func['tracking code']),
        'date_shipped'             => wc_clean($myship_func['order_date']),
        'status_shipped'           => 1,
    );
    $ast = new WC_Advanced_Shipment_Tracking_Actions;
    $tracking_item = $ast->insert_tracking_item( $order_id, $args );
}

Когда порядок изначально заполнен и сгенерирован ярлык Elex получает все данные и вставляет их в мету. Мне нужно извлечь эту мету либо во время генерации, либо после генерации и вставить ее в поля AST.

Таким образом, мой главный вопрос - я на правильном пути? Мне просто нужно выяснить правильный хук или мой метод доступа к массиву Elex неправильный? Опять же, я обычно сравниваю коды, фрагменты и кубики, и заставляю вещи «выглядеть правильно», и тогда они работают (или нет). Я сам не очень хорошо разбираюсь в массивах или функциях классов (что, как я полагаю, в Elex).

В этом случае код молча терпит неудачу, поэтому я подозреваю, что это зацепка или комбинация крючка и мой код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...