1

我将如何在我的插件中使用 WooCommerce 钩子?这是我正在尝试做的事情:

add_filter('woocommerce_edit_product_columns', 'pA_manage_posts_columns');
function pA_manage_posts_columns($columns, $post_type = 'product') {
global $woocommerce;
if ( in_array( $post_type, array( 'product') ) ) {
    $columns['offering_price'] = __( 'offering price', 'your_text_domain' ); // this offering price title 
    $columns['offering_qty'] = __( 'Qty', 'your_text_domain' ); // add the quantity title
    }
unset($columns['name']);
return $columns;

这是我在插件中包含 WooCommerce 的方式:

$ds = DIRECTORY_SEPARATOR;
$base_dir = realpath(dirname(__FILE__)  . $ds . '..') . $ds;
$file = "{$base_dir}woocommerce{$ds}woocommerce.php"; 
include_once($file);

仍然无法从

print_r($woocommerce);
4

1 回答 1

1

你把钩子和回调混在一起了。原始调用在此文件中:

add_filter( 'manage_edit-product_columns', 'woocommerce_edit_product_columns' );

您的代码应该是:

add_filter( 'manage_edit-product_columns', 'pA_manage_posts_columns', 15 );

function pA_manage_posts_columns( $columns ) 
{
    global $woocommerce;
    $columns['offering_price'] = __( 'offering price', 'your_text_domain' ); // this offering price title 
    $columns['offering_qty'] = __( 'Qty', 'your_text_domain' ); // add the quantity title
    unset($columns['name']);
    return $columns;
}

请注意,回调中没有post_type参数。过滤器钩子已经告诉帖子类型是什么:.manage_edit-product_columns

正如 Obmerk Kronen 所指出的,无需包含任何 WooCommerce 文件,您已经可以使用它的所有功能。

于 2013-10-01T11:59:36.110 回答