To add new column in myaccount page through extension . In array original.column add new column .
getContext: _.wrap(RecordViewsView.prototype.getContext, function (fn) {
var original = fn.apply(this, _.toArray(arguments).slice(1));
var shipLink2 = "";
var shipMethodSearchResultData = this.searchResult2;
var fedexLink = this.fedex;
var uspsLink = this.usps;
var upsLink = this.ups;
var shipViaValue
_.each(shipMethodSearchResultData, function(linkColumns){
var shipmethodValue = linkColumns.columns.shipmethod.name;
const WORDSTOCHECK = ["FedEx", "USPS", "UPS"];
for (let i = 0; i < WORDSTOCHECK.length; i++) { if (shipmethodValue.includes(WORDSTOCHECK[i])) {
shipViaValue=WORDSTOCHECK[i]; if (shipViaValue==="FedEx" ) { shipLink2=fedexLink; } if (shipViaValue==="USPS" ) {
shipLink2=uspsLink; } if (shipViaValue==="UPS" ) { shipLink2=upsLink; } } } }) if (this.isTrackingNumber) { var
trackingNoContents='<div class="order-history-tracking-number"><span class="order-history-list-tracking-number-not-available-label">Tracking Number:</span>'
+ '<a target="_blank" href="' + shipLink2 +'">'+ this.trackingNo +'</a>' + '</div>
<div class="order-history-list-tracking-number-control">';
trackingNoContents += '</div>
</div>';
var trackingNoContentsClass = '.recordviews-row.salesorder-'+ this.model.id + '>.recordviews-tracking-number>span';
setTimeout(() => {
$(trackingNoContentsClass)[0].innerHTML = trackingNoContents;
$('.order-history-list-tracking-number-control-button').html('Track <i
class="order-history-list-tracking-number-control-toggle-icon"></i>')
}, 300);
}
var len=original.columns.length;
original.columns.length=5;
original.columns.splice(3, 0, {
"label": "Shipvia:",
"type": "shipvia",
"name": "shipvia",
"value": shipViaValue,
"href":shipLink2,
"showLabel": true,
"target":"_blank"
});
}
console.log("original",len);
console.log("original",original);
return original;
})