I am creating a plugin to show live courier tracking result in woocommerce shop orders page. Here is the code
Adding javascript code
add_action( 'admin_head', 'admin_footer_tracking_js' ); function admin_footer_tracking_js() { global $pagenow; if ( $pagenow === 'edit.php' && isset($_GET['post_type']) && 'shop_order' === $_GET['post_type'] ) : ?> <script type='text/javascript'> function trackParcel(orderId, parcelId){ jQuery.ajax({ type: 'POST', url: '<?php echo admin_url('/admin-ajax.php'); ?>', data: { 'action': 'mark_message_as_read', 'dvs_order_id' : orderId, 'dvs_courier_tracking' : parcelId, }, success: function (response) { console.log(response); jQuery('#track-thickbox').html(response); } }); } </script> <?php endif; }
Adding Tracking button in shop order coloumn
add_action( 'manage_shop_order_posts_custom_column', 'dvs_add_tracking_admin_list_column_content' ); function dvs_add_tracking_admin_list_column_content( $column ) { global $post; if ( 'dvs_show_tracking' === $column ) { $order = wc_get_order( $post->ID ); $dvs_show_courier_list = get_post_meta( $order->get_id(), '_dvs_courier_list', true ); $dvs_show_courier_tracking = get_post_meta( $order->get_id(), '_dvs_courier_tracking', true ); add_thickbox(); echo'<a href="#TB_inline?width=600&height=550&inlineId=my-content-id" id="thickBoxLink" class="woocommerce-Button button thickbox" onclick="trackParcel(\'' . $order->get_id() . '\', \'' . $dvs_show_courier_tracking . '\')">Tracking</a>'; ?> <div id="my-content-id" style="display:none;"> <p id='track-thickbox'> </p> </div> <?php } }
Curl request to get live tracking
add_action('wp_ajax_mark_message_as_read', 'get_mark_message_as_read'); function get_mark_message_as_read() { $order = $_POST['dvs_order_id']; $tracking = $_POST['dvs_courier_tracking']; $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, 'http://new.leopardscod.com/webservice/trackBookedPacket/format/json/'); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, array( 'api_key' => 'xxx', 'api_password' => 'xxx', 'track_numbers' => 'LE783655225' )); $response = curl_exec($curl); curl_close($curl); echo $response; // Send data back to JS die(); }
The code works and display data in the console but not in the output.
Can someone please guide what I did wrong ?
https://stackoverflow.com/questions/65756637/woocommerce-order-dynamic-output-data-is-not-working-in-wordpress-thickbox January 17, 2021 at 10:05AM
没有评论:
发表评论