在一个WordPress网站运行WooCommerce,用户可以在他(默认)登录个人区域并显示类似的信息:WooCommerce客户订单详细
- 历史订单
- 下载
- 地址
- 编辑信息
- 注销
在orders
选项卡中,默认情况下会显示一个表格,其中显示所有订单的列表,其中包含重定向到该订单的完整详细信息页面的View
按钮。
我想要做的是在模态窗口中显示该表格视图。
我没有任何问题显示与目标网址加载模式。 真正的问题是,目标网址是整个页面的显示内容,如所示,并不是我想要的。
我认为有一些shortcode允许加载该表,或者可能是load_order_content_by_id($id)
这样的woocommerce功能?
任何人都可以指向正确的方向吗?
感谢
===解决===
感谢Raunak古普塔指着我正确的函数。 我重写orders.php模板,添加模态窗口的HTML和编辑:
'view' => array(
'url' => 'javascript:;',
'data' => [
'order-number' => $order->get_order_number()
],
'name' => __('View', 'woocommerce')
),
并在同一个文件:
foreach ($actions as $key => $action) {
echo '<a href="' . esc_url($action['url']) . '" class="button ' . sanitize_html_class($key) . '"';
if(isset($action['data']) && is_array($action['data'])){
foreach($action['data'] AS $data_attr=>$data_value){
echo 'data-' . sanitize_html_class($data_attr) .'="' .esc_html($data_value) . '" ';
}
}
echo '>' . esc_html($action['name']) . '</a>';
}
小JS
$('.woocommerce-MyAccount-orders .button.view').on('click', function(e){
e.preventDefault();
var data = {};
data.action = 'modal_order';
data.order_number = $(this).data('order-number');
$.get(ajax_script.ajax_url, data, function(response) {
$('#modalOrderDetail').modal('show').find('.modal-body').html(response);
});
});
和钩到WordPress通过function.php
function modal_order() {
if(is_user_logged_in()) {
$order_number = $_GET['order_number'];
woocommerce_order_details_table($order_number);
}
}
add_action('wp_ajax_modal_order', 'modal_order');
add_action('wp_ajax_nopriv_modal_order', 'modal_order');
我不知道woocommerce,但你的问题似乎很模糊。尝试添加更多的细节(可能是[https://jsfiddle.net/](https://jsfiddle.net/)),你可能会得到更多的回应。 –
我会做一个小提琴,如果只有可能加载wordpress在它:)我会尝试澄清我的帖子 – Yuri
如果有人觉得需要downvoting,至少,为其添加说明 – Yuri