Using TablePress shortcodes in eBay listings

If you use the  TablePress plugin to embed tables in your product descriptions, these will not work out of the box in WP-Lister. 

Instead of the actual table, you will see the plain shortcode [table id=1 /] in your listing description. Unfortunately, the developers of TablePress only register their shortcodes using add_shortcode() when WordPress loads a frontend page, but not with the WP admin. 

Hopefully, they will fix this in a future release, but as of TablePress 1.5.1, you have to add the following code to your functions.php to be able to use TablePress tables in your eBay listings:

// implement support for TablePress - https://wordpress.org/plugins/tablepress/
// usage: [table id=1 /] or [table id=1 param=value]
function wplister_template_filter_fix_tablepress_shortcodes( $html, $item, $images ) {
    if ( ! defined('TABLEPRESS_ABSPATH') ) return $html;
    // match shortcodes: [table id=1 /]
    if ( ! preg_match_all('/\[table id=(.*)( .*)?\/?\]/', $html, $matches ) ) return $html;
    // trick tablepress into thinking we are on the website frontend
    TablePress::$controller = TablePress::load_controller('frontend');
    // prevent tablepress from showing "Edit" link under the table
    add_filter('tablepress_edit_link_below_table', function(){ return false; } );
    // loop all found shortcodes
    for ($i=0; $i < sizeof($matches[0]); $i++) { 
        $shortcode  = $matches[0][$i];
        $table_id   = $matches[1][$i];
        $table_html = tablepress_get_table( array( 'id' => $table_id, 'use_datatables' => false ) );
        $html       = str_replace( $shortcode, $table_html, $html );
    }
    return $html;
}
add_filter( 'wplister_process_template_html', 'wplister_template_filter_fix_tablepress_shortcodes', 10, 3 );

Additionally, you might want to include the default TablePress CSS styles in your style.css:

/* Table description */
.tablepress-table-description {
    clear: both;
    display: block;
}
.tablepress {
    border-collapse: collapse;
    border-spacing: 0;
    width: 100%;
    margin-bottom: 1em;
    border: none;
}
.tablepress th,
.tablepress td {
    padding: 8px;
    border: none;
    background: none;
    text-align: left;
    float: none !important;
}
.tablepress tbody td {
    vertical-align: top;
}
/* Horizontal borders */
.tablepress tbody td,
.tablepress tfoot th {
    border-top: 1px solid #dddddd;
}
.tablepress tbody tr:first-child td {
    border-top: 0;
}
.tablepress thead th {
    border-bottom: 1px solid #dddddd;
}
/* Row background colors */
.tablepress thead th,
.tablepress tfoot th {
    background-color: #d9edf7;
    font-weight: bold;
    vertical-align: middle;
}
.tablepress .odd td {
    background-color: #f9f9f9;
}
.tablepress .even td {
    background-color: #ffffff;
}
.tablepress .row-hover tr:hover td {
    background-color: #f3f3f3;
}
/* Reset image layout in tables */
.tablepress img {
    margin: 0;
    padding: 0;
    border: none;
    max-width: none;
}

Still need help? Contact Us Contact Us