php - 在 WooCommerce 订单快速 View 中显示使用过的优惠券

标签 php wordpress woocommerce orders coupon

我们使用此代码在订单上显示使用过的优惠券。这工作正常!但现在我们还想在订单快速 View 中显示此信息。

我在这里找到了这个钩子(Hook):woocommerce_admin_order_preview_end

所以我尝试用这个钩子(Hook)从下面的代码中更改钩子(Hook)。但是快速查看功能根本不起作用。当我们点击“眼睛”打开快速 View 时——没有任何反应。我们是否必须更多地调整代码或这里的问题是什么?

add_action( 'woocommerce_admin_order_data_after_billing_address', 'custom_checkout_field_display_admin_order_meta', 10, 1 );


/**
 * Add used coupons to the order edit page
 *
*/
function custom_checkout_field_display_admin_order_meta($order){

    if( $order->get_used_coupons() ) {
    
        $coupons_count = count( $order->get_used_coupons() );
    
        echo '<h4>' . __('Coupons used') . ' (' . $coupons_count . ')</h4>';
         
        echo '<p><strong>' . __('Coupons used') . ':</strong> ';
        
        $i = 1;
        
        foreach( $order->get_used_coupons() as $coupon) {
            echo $coupon;
            if( $i < $coupons_count )
                echo ', ';
            $i++;
        }
        
        echo '</p>';
    }

}

最佳答案

尝试使用以下显示管理订单快速查看(预览)中使用的优惠券:

// Add custom order data to make it accessible in Order preview template
add_filter( 'woocommerce_admin_order_preview_get_order_details', 'admin_order_preview_add_custom_data', 10, 2 );
function admin_order_preview_add_custom_data( $data, $order ) {
    // Replace '_custom_meta_key' by the correct postmeta key
    if( $coupons = $order->get_used_coupons() ) {
        $data['coupons_count'] = count($coupons); // <= Store the count in the data array.
        $data['coupons_codes'] = implode(', ', $coupons); // <= Store the count in the data array.
    }
        

    return $data;
}

// Display The data in Order preview
add_action( 'woocommerce_admin_order_preview_end', 'custom_display_order_data_in_admin' );
function custom_display_order_data_in_admin(){
    // Call the stored value and display it
    echo '<div><strong>' . __('Coupons used') . ' ({{data.coupons_count}})<strong>: {{data.coupons_codes}}</div><br>';
}

代码进入事件子主题(或事件主题)的 functions.php 文件。未经测试,它应该可以工作。

基于:Display custom data on Woocommerce admin order preview

关于php - 在 WooCommerce 订单快速 View 中显示使用过的优惠券,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65645923/

相关文章:

php - WooCommerce 中的类以使用 Jquery 显示/隐藏

python - 如何使用 woocommerce api 更新 python 中的 stock_quantity

php - Zend_Session_SaveHandler_DbTable 是否在每次刷新时删除 session ?

php - WordPress url_to_postid 不适用于非默认永久链接

php - 在 Woocommerce 管理订单预览中显示自定义数据

javascript - js 弹出窗口仅加载第一篇文章的内容,而不是单个文章

php - 在 WordPress 主题中(使用 get_search_form()),如何将占位符文本添加到搜索框?

php - 为什么将字符串中的加号替换为空格

php - 繁重的处理导致站点不可用

php - 如何让 MySQL 返回 UTF-8?