php - 尝试添加搜索栏管理面板菜单栏搜索 woocommerce 产品

标签 php wordpress woocommerce

尝试将产品搜索栏添加到 Wordpress 管理栏后端,以进行 Woocommerce 产品搜索。它将位于后端管理菜单栏的顶部,这样无论您在后端的哪个位置,都可以搜索 woo 的产品。我很接近但在小绊脚石上犯了错误。当尝试使用搜索时,它默认发布搜索而不是产品。

//Add Search To Admin Bar
function boatparts_admin_bar_form() {
global $wp_admin_bar;
$wp_admin_bar->add_menu(array(
    'id' => 'boatparts_admin_bar_form',
    'parent' => 'top-secondary',
    'title' => '<form method="get" action="'.get_site_url().'/wp-admin/edit.php?post_type=product">
<input name="s" type="text" style="height:20px;margin:5px 0;line-height:1em;"/> 
<input type="submit" style="height:18px;vertical-align:top;margin:5px 0;padding:0 2px;" value="Search Products"/> 
</form>'
));
}
add_action('admin_bar_menu', 'boatparts_admin_bar_form');

将它放在我的子主题的 function.php 中。想弄明白让我抓狂。

最佳答案

您应该使用post-type 参数添加隐藏字段:

<input name="post_type" value="product" type="hidden">

此外,我添加了一些代码,用于在表单提交后在表单中显示搜索查询,并对按钮样式进行了小的修复。

修复了下面的代码片段:

//Add Search To Admin Bar
function boatparts_admin_bar_form() {
  global $wp_admin_bar;

  $search_query = '';
  if ( $_GET['post_type'] == 'product' ) {
    $search_query = $_GET['s'];
  }

  $wp_admin_bar->add_menu(array(
    'id' => 'boatparts_admin_bar_form',
    'parent' => 'top-secondary',
    'title' => '<form method="get" action="'.get_site_url().'/wp-admin/edit.php?post_type=product">
      <input name="s" type="text" value="' . $search_query . '" style="height:20px;margin:5px 0;line-height:1em;"/> 
      <input type="submit" style="padding:3px 7px;line-height:1" value="Search Products"/> 
      <input name="post_type" value="product" type="hidden">
    </form>'
  ));
}
add_action('admin_bar_menu', 'boatparts_admin_bar_form');

搜索结果示例:

Search results sample

关于php - 尝试添加搜索栏管理面板菜单栏搜索 woocommerce 产品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35807380/

相关文章:

php - WooCommerce:随机显示一些 5 星级产品评论

html - 图标字体不再在 WordPress 网站上显示字符

php - 根据产品总数对某些类别进行折扣

php - 保存与外键相关的模型的最佳实践

php - mysql_num_rows 如果计数大于 1

php - 如何使用 PayPal IPN WordPress 显示支付信息

php - Woocommerce 从不在结帐页面上保存送货地址

php - 根据 WooCommerce 产品类型更改添加到购物车按钮和文本

javascript - 如何让人们在同一表单上进行协作并实时更新?

php - 在 PHP SQL 查询中使用子字符串和追加