增加WooCommerce中的产品差异限制

时间:2018-05-23 作者:kirubanidhi

我想提高Woocomece的产品变化限制。

在现有的woocommerce法规中,产品变化限制为100。

$limit = apply_filters( ‘woocommerce_rest_batch_items_limit’, 100, $this->get_normalized_rest_base() );
我将现有的代码产品变化限制更改为100到200。

$limit = apply_filters( ‘woocommerce_rest_batch_items_limit’, 200, $this->get_normalized_rest_base() );
它可以工作,但当我更新我的woocommerce插件时,现有的代码更改将被删除。

所以我想改变功能。php文件。如何做到这一点。

Base Code ( wordpress/plugin/woocommerce/includes/abstract/abstract-wc-rest-controller )

protected function check_batch_limit( $items ) {
    $limit = apply_filters( \'woocommerce_rest_batch_items_limit\', 100, $this->get_normalized_rest_base() );
    $total = 0;

    if ( ! empty( $items[\'create\'] ) ) {
        $total += count( $items[\'create\'] );
    }

    if ( ! empty( $items[\'update\'] ) ) {
        $total += count( $items[\'update\'] );
    }

    if ( ! empty( $items[\'delete\'] ) ) {
        $total += count( $items[\'delete\'] );
    }

    if ( $total > $limit ) {
    /* translators: %s: items limit */
        return new WP_Error( \'woocommerce_rest_request_entity_too_large\', sprintf( __( \'Unable to accept more than %s items for this request.\', \'woocommerce\' ), $limit ), array( \'status\' => 413 ) );
    }

    return true;
}

3 个回复
SO网友:Jacob Peattie

这就是apply_filters() 电话是为。这是一个hook 这样可以修改值。

在这种情况下,您要使用add_filter() 使用woocommerce_rest_batch_items_limit 钩子名称作为第一个参数,然后是callback function 返回修改后的值:

function wpse_304237_rest_batch_items_limit( $limit ) {
    $limit = 200;

    return $limit;
}
add_filter( \'woocommerce_rest_batch_items_limit\', \'wpse_304237_rest_batch_items_limit\' );
钩子是主题和插件与WordPress和其他插件集成的主要方式,因此如果你想开始在WordPress或WooCommerce上进行定制开发,我会优先学习它们。

SO网友:kirubanidhi

我们解决了这个问题。我们创建了名为product variation limit plugin的新插件,然后创建了一个新文件名为product variation limit plugin。php。在PHP文件中添加了以下代码。

http://woocommerce.com描述:此插件用于在将产品从odoo导出到woocommerce版本1.0时增加产品变化限制作者:Sodexis PVT Ltd作者URI:http://woocommerce.com 许可证:GPL2*/

function wpse_rest_batch_items_limit( $limit ) {
    $limit = 200;

    return $limit;
}
add_filter( \'woocommerce_rest_batch_items_limit\', \'wpse_rest_batch_items_limit\' );
我们查过了。问题是产品变体没有从Odoo同步到woo commerce,所以我们创建了这个插件。它工作正常。

SO网友:pogla

对于所有想使用插件的人,我创建了它:Increase Product Variation Limit For Woocommerce

结束

相关推荐