如果产品定价可能的话,我需要一点帮助,

我需要当一个产品被成功地添加到数据库中,我希望它的"正常价格"将自动添加特定的金额,这应该适用于所有产品添加,它是一个单位量的所有产品.

例如:如果T恤的常规产品是25美元,我需要在产品添加到数据库时自动将这25美元添加到5美元,以便最终用户(客户)可以看到最终价格为30美元.

enter image description here

function set_default_price( $post_id, $post ) {

    if ( isset( $_POST['_regular_price'] ) && trim( $_POST['_regular_price'] ) == '' ) {
        update_post_meta( $post_id, '_regular_price', '5' );
    }


}
add_action( 'woocommerce_process_product_meta', 'set_default_price' );

我已经找到了这段代码,但它不能完成工作&&我不擅长使用PHP

你知道我该怎么做吗?

推荐答案

从WooCommerce 3开始,您可以使用CRUD方法和钩子,如下所示,在产品创建时自动添加定义的固定金额到正常价格:

add_action( 'woocommerce_admin_process_product_object', 'woocommerce_admin_process_product_object_callback' );
add_action( 'woocommerce_admin_process_variation_object', 'woocommerce_admin_process_product_object_callback' );
function woocommerce_admin_process_product_object_callback( $product ) {
    if ( $product->get_meta('_flat_amount_added') !== 'yes' && isset($_POST['_regular_price']) ) {
        $flat_amount = 5; // Define the flat amount to be added to the regular price

        $regular_price = (float) $product->get_regular_price('edit');
        $product->set_regular_price($regular_price + $flat_amount);
        $product->add_meta_data('_flat_amount_added', 'yes', true);
    }
}

代码位于您的子主题的unctions.php文件中(或在插件中).测试并适用于所有WooCommerce产品,包括产品变体…

Php相关问答推荐

从WooCommerce邮箱通知中的订单详细信息中删除产品列表

LaravelEloquent 地根据表中的值提取记录

PHP中的圆生成器在国际日期变更线上失败

将文件添加到存档,而不重建存档

允许客户定义特定WooCommerce产品的价格

SFTP在PHP(phpseclib3\Net\SFTP)-过滤目录列表结果服务器端可能吗?类似于psftp中的LS命令?

限制联系人页面仅允许在WooCommerce中登录的用户

PHP按另一个二维数组的排序顺序对二维数组进行排序

既然setSQLLogger()已被弃用,如何使用中间件在 Doctrine 3 中记录查询执行时间?

Laravel 10 中的自定义类未找到

PHP 解析 XML 以获取多个深度的所有字符串值

simplexml_load_file 和 simplexml_load_string 返回具有不同编码的相同数据

在 PHP 8.2 中使用 PHP Spreadsheet 和 CodeIgniter 3 导出 Excel 时出错

设置GA4 PHP API的setSubject以允许访问所有管理员账户属性

如何在自定义消息中包含 WooCommerce 选定的产品变体详细信息

自定义主键值未正确显示

在 WooCommerce 结帐后更新用户元字段

如何使用先前 SELECT 的结果来 SELECT SQL 数据

如何通过本地主机在同一台 PC 上同时运行 Microsoft IIS 和 WAMP

如何将文件直接上传到 Cloudinary 而不先保存在 public 文件夹中