Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 根据单个产品的重量更换“添加到购物车”按钮_Php_Wordpress_Button_Woocommerce_Hook Woocommerce - Fatal编程技术网

Php 根据单个产品的重量更换“添加到购物车”按钮

Php 根据单个产品的重量更换“添加到购物车”按钮,php,wordpress,button,woocommerce,hook-woocommerce,Php,Wordpress,Button,Woocommerce,Hook Woocommerce,我在woocommerce上搜索了有条件地替换“添加到购物车”按钮。我有一个代码,我已经根据需要修改了它。它在商店页面上工作得很好 这是我的密码: add_filter( 'woocommerce_loop_add_to_cart_link', 'replace_default_button', 10, 2 ); function replace_default_button( $button, $product ){ global $product; $weight = $pr

我在woocommerce上搜索了有条件地替换“添加到购物车”按钮。我有一个代码,我已经根据需要修改了它。它在商店页面上工作得很好

这是我的密码:

add_filter( 'woocommerce_loop_add_to_cart_link', 'replace_default_button', 10, 2 );
function replace_default_button( $button, $product ){
    global $product;
    $weight = $product->get_weight();
    preg_replace('/\D/', '', $weight);
    if ( $product->has_weight() && ($weight > '8') ){
        $button = '<a href="#" class="button alt">' . __( "Add to Quote", "woocommerce" ) . '</a>';
    }
    return $button;
}
add_过滤器('woocommerce_loop_add_to_cart_link','replace_default_button',10,2);
函数替换默认按钮($button$product){
全球$产品;
$weight=$product->get_weight();
预更换(“/\D/”,“$重量);
如果($product->has_weight()&($weight>'8')){
$button='';
}
返回$按钮;
}
但我需要一个单一的产品页面以及类似的代码。
我该怎么做?有什么帮助吗?

首先,您可以将代码简化为:

add_filter( 'woocommerce_loop_add_to_cart_link', 'replace_default_button', 10, 2 );
function replace_default_button( $button, $product ){

    $weight = $product->get_weight();
    preg_replace('/\D/', '', $weight);

    if ( $weight > 8 ){
        $button = '<a href="#" class="button alt">' . __( "Add to Quote", "woocommerce" ) . '</a>';
    }
    return $button;
}
add_过滤器('woocommerce_loop_add_to_cart_link','replace_default_button',10,2);
函数替换默认按钮($button$product){
$weight=$product->get_weight();
预更换(“/\D/”,“$重量);
如果($weight>8){
$button='';
}
返回$按钮;
}
然后,要为单个产品页面提供类似的内容,请使用以下内容:

add_action( 'woocommerce_single_product_summary', 'action_single_product_summary_callback', 1 );
function action_single_product_summary_callback() {
    global $product;

    $weight = $product->get_weight();
    preg_replace('/\D/', '', $weight);

    if ( $weight > 8 ) {

        // For variable product types
        if( $product->is_type( 'variable' ) ) {
            remove_action( 'woocommerce_single_variation', 'woocommerce_single_variation_add_to_cart_button', 20 );
            add_action( 'woocommerce_single_variation', 'add_to_quote_replacement_button', 20 );
        }
        // For all other product types
        else {
            remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
            add_action( 'woocommerce_single_product_summary', 'add_to_quote_replacement_button', 30 );
        }
    }
}

function add_to_quote_replacement_button(){
    echo '<a href="#" class="button alt">' . __( "Add to Quote", "woocommerce" ) . '</a>';
}
add_action('woocommerce_single_product_summary','action_single_product_summary_callback',1);
函数操作\u单个产品\u摘要\u回调(){
全球$产品;
$weight=$product->get_weight();
预更换(“/\D/”,“$重量);
如果($weight>8){
//用于可变产品类型
如果($product->is_类型('variable')){
删除操作('woocommerce\u single\u variation'、'woocommerce\u single\u variation\u add\u to\u cart\u button',20);
添加操作('woocommerce\u single\u variation'、'add\u to\u quote\u replacement\u button',20);
}
//适用于所有其他产品类型
否则{
删除操作('woocommerce\u single\u product\u summary'、'woocommerce\u template\u single\u add\u to\u cart',30);
添加操作('woocommerce\u single\u product\u summary','add\u to \u quote\u replacement\u button',30);
}
}
}
函数“添加到报价单”“替换”按钮(){
回声';
}

代码进入活动子主题(或活动主题)的functions.php文件。经过测试,效果良好。

非常感谢。它起作用了。。。。