Untitled
webwizards
plain_text
2 months ago
6.8 kB
11
Indexable
// Add custom column headers for billing fields and B2BKing custom fields
add_action('b2bking_b2bcustomers_column_header', 'add_custom_billing_columns_header');
function add_custom_billing_columns_header() {
?>
<th><?php esc_html_e('First Name', 'b2bking'); ?></th>
<th><?php esc_html_e('Last Name', 'b2bking'); ?></th>
<th><?php esc_html_e('Street Address', 'b2bking'); ?></th>
<th><?php esc_html_e('Country/State', 'b2bking'); ?></th>
<th><?php esc_html_e('City', 'b2bking'); ?></th>
<th><?php esc_html_e('Postcode', 'b2bking'); ?></th>
<?php
// Add B2BKing custom fields headers
$custom_fields = get_posts([
'post_type' => 'b2bking_custom_field',
'post_status' => 'publish',
'numberposts' => -1,
'orderby' => 'menu_order',
'order' => 'ASC',
'meta_query'=> array(
'relation' => 'AND',
array(
'key' => 'b2bking_custom_field_status',
'value' => 1
),
array(
'relation' => 'OR',
array(
'key' => 'b2bking_custom_field_billing_connection',
'value' => 'none'
),
array(
'key' => 'b2bking_custom_field_billing_connection',
'value' => 'billing_vat'
),
),
)
]);
foreach ($custom_fields as $custom_field) {
?>
<th><?php echo esc_html($custom_field->post_title); ?></th>
<?php
}
}
// Add custom column content for billing fields and B2BKing custom fields
add_filter('b2bking_b2bcustomers_row_content', 'add_custom_billing_columns_content', 10, 2);
function add_custom_billing_columns_content($echostring, $user_id) {
// Get billing information
$first_name = get_user_meta($user_id, 'billing_first_name', true);
$last_name = get_user_meta($user_id, 'billing_last_name', true);
$address = get_user_meta($user_id, 'billing_address_1', true);
$address_2 = get_user_meta($user_id, 'billing_address_2', true);
$country = get_user_meta($user_id, 'billing_country', true);
$state = get_user_meta($user_id, 'billing_state', true);
$city = get_user_meta($user_id, 'billing_city', true);
$postcode = get_user_meta($user_id, 'billing_postcode', true);
// Format address (combine address_1 and address_2 if both exist)
$full_address = $address;
if (!empty($address_2)) {
$full_address .= ', ' . $address_2;
}
// Format country and state
$country_state = '';
if (!empty($country)) {
// Get country name from country code
$countries = WC()->countries->get_countries();
$country_name = isset($countries[$country]) ? $countries[$country] : $country;
$country_state = $country_name;
if (!empty($state)) {
// Get state name from state code
$states = WC()->countries->get_states($country);
$state_name = isset($states[$state]) ? $states[$state] : $state;
$country_state .= ', ' . $state_name;
}
}
// Handle empty values
$first_name = !empty($first_name) ? $first_name : '-';
$last_name = !empty($last_name) ? $last_name : '-';
$full_address = !empty($full_address) ? $full_address : '-';
$country_state = !empty($country_state) ? $country_state : '-';
$city = !empty($city) ? $city : '-';
$postcode = !empty($postcode) ? $postcode : '-';
// Add the billing field columns to the existing row content
$echostring .= '<td>' . esc_html($first_name) . '</td>';
$echostring .= '<td>' . esc_html($last_name) . '</td>';
$echostring .= '<td>' . esc_html($full_address) . '</td>';
$echostring .= '<td>' . esc_html($country_state) . '</td>';
$echostring .= '<td>' . esc_html($city) . '</td>';
$echostring .= '<td>' . esc_html($postcode) . '</td>';
// Add B2BKing custom fields columns
$custom_fields = get_posts([
'post_type' => 'b2bking_custom_field',
'post_status' => 'publish',
'numberposts' => -1,
'orderby' => 'menu_order',
'order' => 'ASC',
'meta_query'=> array(
'relation' => 'AND',
array(
'key' => 'b2bking_custom_field_status',
'value' => 1
),
array(
'relation' => 'OR',
array(
'key' => 'b2bking_custom_field_billing_connection',
'value' => 'none'
),
array(
'key' => 'b2bking_custom_field_billing_connection',
'value' => 'billing_vat'
),
),
)
]);
foreach ($custom_fields as $custom_field) {
$field_value = get_user_meta($user_id, 'b2bking_custom_field_' . $custom_field->ID, true);
$field_value = !empty($field_value) ? $field_value : '-';
$echostring .= '<td>' . esc_html($field_value) . '</td>';
}
return $echostring;
}
// Add custom column footers for billing fields and B2BKing custom fields
add_action('b2bking_b2bcustomers_column_footer', 'add_custom_billing_columns_footer');
function add_custom_billing_columns_footer() {
?>
<th><?php esc_html_e('First Name', 'b2bking'); ?></th>
<th><?php esc_html_e('Last Name', 'b2bking'); ?></th>
<th><?php esc_html_e('Street Address', 'b2bking'); ?></th>
<th><?php esc_html_e('Country/State', 'b2bking'); ?></th>
<th><?php esc_html_e('City', 'b2bking'); ?></th>
<th><?php esc_html_e('Postcode', 'b2bking'); ?></th>
<?php
// Add B2BKing custom fields footers
$custom_fields = get_posts([
'post_type' => 'b2bking_custom_field',
'post_status' => 'publish',
'numberposts' => -1,
'orderby' => 'menu_order',
'order' => 'ASC',
'meta_query'=> array(
'relation' => 'AND',
array(
'key' => 'b2bking_custom_field_status',
'value' => 1
),
array(
'relation' => 'OR',
array(
'key' => 'b2bking_custom_field_billing_connection',
'value' => 'none'
),
array(
'key' => 'b2bking_custom_field_billing_connection',
'value' => 'billing_vat'
),
),
)
]);
foreach ($custom_fields as $custom_field) {
?>
<th><?php echo esc_html($custom_field->post_title); ?></th>
<?php
}
}Editor is loading...
Leave a Comment