Skip to content

Commit 90bccd5

Browse files
fix: show PPOM fields in WC PDF invoices
1 parent 422e975 commit 90bccd5

File tree

2 files changed

+44
-8
lines changed

2 files changed

+44
-8
lines changed

classes/plugin.class.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -172,8 +172,9 @@ function __construct() {
172172

173173
// when email improvements feature enabled in woocommerce.
174174
if ( ppom_wc_email_improvements_enabled() ) {
175-
add_action( 'woocommerce_order_item_meta_end', 'ppom_woocommerce_order_item_meta_html', 10, 4 );
175+
add_action( 'woocommerce_order_item_meta_end', 'ppom_woocommerce_order_item_meta_html', 10, 2 );
176176
add_filter( 'woocommerce_display_item_meta', '__return_empty_string' );
177+
add_filter( 'wpo_ips_display_item_meta_html', 'ppom_invoice_packing_slips_html', 10, 3 );
177178
} else {
178179
// Few inputs like file/crop/image need to show meta value in tags
179180
add_filter( 'woocommerce_order_item_display_meta_value', 'ppom_woocommerce_order_value', 10, 3 );

inc/woocommerce.php

Lines changed: 42 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1428,19 +1428,19 @@ function ppom_woocommerce_order_item_meta_html( $item_id, $item ) {
14281428
$meta_item_html = '';
14291429
$output_args = apply_filters( 'ppom_woocommerce_item_meta_args',
14301430
array(
1431-
'before' => '<div>',
1432-
'after' => '</div>',
1433-
'separator' => '<br>',
1434-
'label_before' => '<span style="float: left;">',
1435-
'label_after' => ':</span> ',
1431+
'before' => '<ul class="wc-item-meta"><li>',
1432+
'after' => '</li></ul>',
1433+
'separator' => '</li><li>',
1434+
'label_before' => '<strong class="wc-item-meta-label">',
1435+
'label_after' => ':</strong> ',
14361436
)
14371437
);
14381438
foreach ( $formatted_meta as $meta ) {
1439-
$strings[] = $output_args['before'] . $output_args['label_before'] . wp_kses_post( $meta->display_key ) . $output_args['label_after'] . ppom_woocommerce_order_value( $meta->display_value, $meta, $item ) . $output_args['after'];
1439+
$strings[] = $output_args['label_before'] . wp_kses_post( $meta->display_key ) . $output_args['label_after'] . ppom_woocommerce_order_value( $meta->display_value, $meta, $item );
14401440
}
14411441

14421442
if ( $strings ) {
1443-
$meta_item_html = implode( $output_args['separator'], $strings );
1443+
$meta_item_html = $output_args['before'] . implode( $output_args['separator'], $strings ) . $output_args['after'];
14441444
}
14451445
echo wp_kses_post( $meta_item_html );
14461446
}
@@ -1452,4 +1452,39 @@ function ppom_woocommerce_order_item_meta_html( $item_id, $item ) {
14521452
*/
14531453
function ppom_wc_email_improvements_enabled() {
14541454
return 'yes' === get_option( 'woocommerce_feature_email_improvements_enabled', 'no' );
1455+
}
1456+
1457+
/**
1458+
* Outputs the formatted meta data for invoice or packing slips.
1459+
*
1460+
* @param string $html HTML of the item meta data
1461+
* @param \WC_Order_Item_Product $item The order item object.
1462+
* @param array $args arguments for display the html.
1463+
*/
1464+
function ppom_invoice_packing_slips_html( $html, $item, $args = array() ) {
1465+
$strings = array();
1466+
$args = wp_parse_args(
1467+
$args,
1468+
array(
1469+
'before' => '<ul class="wc-item-meta"><li>',
1470+
'after' => '</li></ul>',
1471+
'separator' => '</li><li>',
1472+
'echo' => true,
1473+
'autop' => false,
1474+
'label_before' => '<strong class="wc-item-meta-label">',
1475+
'label_after' => ':</strong> ',
1476+
)
1477+
);
1478+
1479+
foreach ( $item->get_all_formatted_meta_data() as $meta_id => $meta ) {
1480+
$meta_value = ppom_woocommerce_order_value( $meta->display_value, $meta, $item );
1481+
$value = $args['autop'] ? wp_kses_post( $meta_value ) : wp_kses_post( make_clickable( trim( $meta_value ) ) );
1482+
$strings[] = $args['label_before'] . wp_kses_post( $meta->display_key ) . $args['label_after'] . $value;
1483+
}
1484+
1485+
if ( $strings ) {
1486+
$html = $args['before'] . implode( $args['separator'], $strings ) . $args['after'];
1487+
}
1488+
1489+
return $html;
14551490
}

0 commit comments

Comments
 (0)