Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.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 在Woocommerce中将所选的变动价格移动到产品附加组件表单下方_Php_Wordpress_Woocommerce_Price_Variations - Fatal编程技术网

Php 在Woocommerce中将所选的变动价格移动到产品附加组件表单下方

Php 在Woocommerce中将所选的变动价格移动到产品附加组件表单下方,php,wordpress,woocommerce,price,variations,Php,Wordpress,Woocommerce,Price,Variations,我有官方的插件,我正在一个可变的产品上使用它。但是,我希望价格显示在“添加到购物车”按钮上方,而不是在“变体选择”列表下方,因为它现在没有显示 我到处都找过了,我把单个产品的价格移到了下面的简短描述中,但无法计算出如何对带有产品附加组件的可变产品执行此操作 显示当前位置和所需位置的屏幕截图: 非常感谢您的帮助 jQuery('.price').insertAfter('.sauce') 前端解决方案(只需放置正确的选择器)WooCommerce插件在“添加到购物车”按钮之前已经显示了一个自定

我有官方的插件,我正在一个可变的产品上使用它。但是,我希望价格显示在“添加到购物车”按钮上方,而不是在“变体选择”列表下方,因为它现在没有显示

我到处都找过了,我把单个产品的价格移到了下面的简短描述中,但无法计算出如何对带有产品附加组件的可变产品执行此操作

显示当前位置和所需位置的屏幕截图:

非常感谢您的帮助

jQuery('.price').insertAfter('.sauce')
前端解决方案(只需放置正确的选择器)

WooCommerce插件在“添加到购物车”按钮之前已经显示了一个自定义定价表,其中显示了所选的变动价格,以及所选的选项“定价和小计”:

您不能仅单独移动显示的所选变体价格,因为它是由实时选择事件上的javascript驱动的,并与变体可用性和变体描述(如果有)分组

所以您可以做的是:

1) 要在“添加到购物车”按钮之前移动变动价格及其可用性和说明,请使用:

add_action( 'woocommerce_before_variations_form', 'reposition_display_for_variable_products', 10 );
function reposition_display_for_variable_products() {
    global $product;

    if( $product_addons = $product->get_meta('_product_addons') ) {
        if( sizeof($product_addons) > 0 ) {
            remove_action( 'woocommerce_single_variation', 'woocommerce_single_variation', 10 );
            add_action( 'woocommerce_single_variation', 'woocommerce_single_variation', 16 );
        }
    }
}
代码进入活动子主题(或活动主题)的function.php文件。测试和工作

但它将显示在自定义“加载项”定价表之后:


2) 隐藏Woocommerce变体价格(因为它已经由自定义“加载项”定价表显示)

代码进入活动子主题(或活动主题)的function.php文件。测试和工作


3) 同时使用,将变体可用性和变体描述移动到“插件”定价表之后和添加到购物车按钮之前:


要移动产品附加组件,可以将其添加到
functions.php
文件中:

if( isset($GLOBALS['Product_Addon_Display']) ){
  remove_action( 'woocommerce_product_addons_end', array( $GLOBALS['Product_Addon_Display'], 'totals' ), 10 );
}
如果要将其添加回:

if( isset($GLOBALS['Product_Addon_Display']) ){
  add_action( 'some_action_hook', array( $GLOBALS['Product_Addon_Display'], 'totals' ), 10 );
}
但你必须确保两件事:

  • 您必须将id(或某些id)作为参数传递给新的钩子
  • 生成总计的JS在一些
    .cart
    元素中查找
    #product addons total
  • if( isset($GLOBALS['Product_Addon_Display']) ){
      add_action( 'some_action_hook', array( $GLOBALS['Product_Addon_Display'], 'totals' ), 10 );
    }