我们使用Woocommerce插件的最新版本WordPress。我正在寻找将jquery应用于自定义帖子类型(如WC)的最佳方法。我已经有很多Woocommerce的钩子,所以现在我已经将一些jquery添加到了我之前添加到编辑中的元框中。php页面。例如,我使用jquery单击地址按钮来显示所有地址字段,并在加载页面时对非管理员用户隐藏退款按钮。我确信一定有一个更好的应用jquery,就像我现在在下面所做的那样?
add_action( \'add_meta_boxes\', \'my_add_meta_boxes\' );
function my_add_meta_boxes(){
add_meta_box(
\'woocommerce-order-my-custom\',
__( \'My Meta Box\' ),
\'order_my_custom\',
\'shop_order\',
\'side\',
\'default\'
);
}
// Add fields to the metabox
function order_my_custom( $post ){
//<code omitted that places fields in meta box>
?>
<script type="text/javascript">
jQuery(document).ready(function ($) {
$(".edit_address").click();
$(".add-line-item").click();
});
</script>
<?php
}
我已经使用admin\\u enqueue\\u脚本添加了我自己的常用jquery函数,但是,将您自己的jquery添加到特定帖子类型的最佳方法是什么?
最合适的回答,由SO网友:Robert Fitzpatrick 整理而成
前面的答案很适合我上面使用这个钩子的例子:
add_action( \'admin_head\', \'woocommerce_admin_init\' );
function woocommerce_admin_init() {
$screen = get_current_screen();
if ( $screen->post_type == "shop_order" ) {
?>
<script type="text/javascript">
jQuery(document).ready(function ($) {
$(".edit_address").click();
$(".add-line-item").click();
});
</script>
<?php
}
}
SO网友:Dan Wist
您可以使用get\\u current\\u screen()函数。。。它返回一个对象,其中包含有关您在wp admin中查看的屏幕的许多有用信息。
出于您的目的,您需要该对象的post\\u type属性,该属性将返回当前管理屏幕正在使用的post类型。
<?
$screen = get_current_screen();
if ( $screen->post_type == "ENTERYOURPOSTTYPE" ) {
?>
<script>
JAVASCRIPT HERE
</script>
<?
}
?>
在您的特定示例中,您需要在我指示的位置添加javascript,然后将该函数附加到admin\\u head挂钩。
add_action( \'admin_head\', \'woocommerce_admin_init\' );
function woocommerce_admin_init() {
$screen = get_current_screen();
if ( $screen->post_type == "shop_order" ) {
?>
<script type="text/javascript">
jQuery(document).ready(function ($) {
$(".edit_address").click();
$(".add-line-item").click();
});
</script>
<?php
}
}
参考号:
http://codex.wordpress.org/Function_Reference/get_current_screen