gpt4 book ai didi

php - 在优惠券设置中添加一个字段并在 Woocommerce 管理订单列表中显示该值

转载 作者:行者123 更新时间:2023-12-03 23:05:11 25 4
gpt4 key购买 nike

我真的很难让它发挥作用。
我脑子里有一个想法:

  • 能够通过常规优惠券选项卡中的额外字段将单个用户分配给优惠券代码,该字段将未分配的用户列出优惠券代码
    我不想使用第三方扩展、自定义字段等。我希望我能够通过元数据做到这一点,但我失败了。不知道如何正确完成它。
  • 在订单页面上添加两个额外的列并显示优惠券代码和分配给它的用户。
    在 phpstorm 中阅读文档和 xDebugging 一段时间后,我也未能完成。
     function order_sellers_and_coupons_columns_values($column)
    {
    global $post, $the_order;

    if ($column == 'order_coupon_code') {
    $coupons = $the_order->get_used_coupons(); // not sure how to get coupon object by the coupon code
    echo (count($coupons)) ? $coupons[0] : '';
    }
    }

    // even though I see the order objects have an items and coupon lines property,
    // which is an object, i can't get access to it
    $the_order->items["coupon_lines"]

  • 我不是要求现成的解决方案,而是向我展示如何完成它。
    在此先感谢您的任何帮助。

    最佳答案

    在 WooCommerce 管理单优惠券页面中,我们为卖家(经销商)添加了一个额外的字段:

    // Add a custom field to Admin coupon settings pages
    add_action( 'woocommerce_coupon_options', 'add_coupon_text_field', 10 );
    function add_coupon_text_field() {
    woocommerce_wp_text_input( array(
    'id' => 'seller_id',
    'label' => __( 'Assing a seller (dealer)', 'woocommerce' ),
    'placeholder' => '',
    'description' => __( 'Assign a seller / dealer to a coupon', 'woocommerce' ),
    'desc_tip' => true,

    ) );
    }

    // Save the custom field value from Admin coupon settings pages
    add_action( 'woocommerce_coupon_options_save', 'save_coupon_text_field', 10, 2 );
    function save_coupon_text_field( $post_id, $coupon ) {
    if( isset( $_POST['seller_id'] ) ) {
    $coupon->update_meta_data( 'seller_id', sanitize_text_field( $_POST['seller_id'] ) );
    $coupon->save();
    }
    }
    然后使用以下内容,您将添加到管理订单列表中的优惠券代码(在订单中使用时)以及卖家/经销商名称:
    // Adding a new column to admin orders list
    add_filter( 'manage_edit-shop_order_columns', 'custom_shop_order_column' );
    function custom_shop_order_column($columns)
    {
    $reordered_columns = array();

    // Inserting columns to a specific location
    foreach( $columns as $key => $column){
    $reordered_columns[$key] = $column;
    if( $key == 'order_status' ){
    // Inserting after "Status" column
    $reordered_columns['coupons'] = __( 'Coupon','theme_domain');
    }
    }
    return $reordered_columns;
    }

    // Adding used coupon codes
    add_action( 'manage_shop_order_posts_custom_column' , 'custom_orders_list_column_content', 10, 2 );
    function custom_orders_list_column_content( $column, $post_id )
    {
    global $the_order;

    if ( $column == 'coupons' ) {
    $coupons = (array) $the_order->get_used_coupons();
    $dealers = [];

    foreach( $coupons as $coupon_code ) {
    $coupon = new WC_Coupon( $coupon_code );
    $dealers[] = $coupon->get_meta('seller_id');
    }

    if( count($coupons) > 0 )
    echo implode( ', ', $coupons );

    if( count($dealers) > 0 )
    echo '<br><small>(' . implode( ', ', $dealers ) . ')</small>';
    }
    }
    所有代码都在您的事件子主题(或事件主题)的 functions.php 文件中。测试和工作。

    在管理员优惠券单页上:
    enter image description here
    在管理员编辑订单列表中:
    enter image description here

    关于php - 在优惠券设置中添加一个字段并在 Woocommerce 管理订单列表中显示该值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63178942/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com