2
votes

Ajouter un bouton d'action à Woocommerce mes commandes de compte qui s'ouvrent dans une nouvelle fenêtre

Je vais ajouter un bouton à partir de la commande de mon compte pour qu'il accède à une URL spécifique. J'ai créé un bouton, mais je veux l'ouvrir avec une nouvelle fenêtre au lieu d'aller sur la page. Que dois-je faire? Ci-dessous se trouve le code que j'ai ajouté, et j'aimerais ouvrir l'url ici avec une cage:

function sv_add_my_account_order_actions( $actions, $order ) {

    $actions['name'] = array(
        'url'  => 'the_action_url',
        'name' => 'The Button Text',
    );
    return $actions;
}
add_filter( 'woocommerce_my_account_my_orders_actions', 'sv_add_my_account_order_actions', 10, 2 );

comment ajouter target = "_ blank" à chaque bouton personnalisé?


0 commentaires

3 Réponses :


2
votes

Utilisez ce qui suit qui ajoutera à chaque balise html d'action spécifique l'attribut target avec une valeur _blank ouvrant le lien dans une nouvelle fenêtre:

add_filter( 'woocommerce_my_account_my_orders_actions', 'add_my_account_my_orders_custom_action', 10, 2 );
function add_my_account_my_orders_custom_action( $actions, $order ) {
    if ( $order->has_status( 'completed' ) ) {
        $action_slug = 'specific_name';

        $actions[$action_slug] = array(
            'url'  => home_url('/the_action_url/'),
        'name' => 'The Button Text',
        );
    }
    return $actions;
}


0 commentaires

0
votes

Vous pouvez le modifier dans le modèle myaccount \ my-orders.php, ligne 76. Consultez ici pour découvrir comment créer un modèle woocommerce

echo '<a target = "_blank" href="' . esc_url( $action['url'] ) . '" class="button ' . sanitize_html_class( $key ) . '">' . esc_html( $action['name'] ) . '</a>';


0 commentaires

-1
votes

Pour cibler uniquement les commandes complètes, ajoutez if ($ order-> has_status ('completed'))

Au lieu de a le statut ('terminé')

Je souhaite afficher le bouton en fonction du produit acheté, comme en fonction du nom ou de l'identifiant du produit


1 commentaires

Il semble que vous ayez une question liée au sujet, mais vous avez une nouvelle question. Commencez une nouvelle question pour obtenir une réponse et soyez plus précis sur ce que vous faites exactement. Reportez-vous à ce fil pour indiquer le type de défi que vous rencontrez. HTH