Maison  >  Questions et réponses  >  le corps du texte

Vous ne savez pas pourquoi une notification de variable non définie tente d'obtenir « l'identifiant » du produit lors de l'ajout du champ ACF à la colonne personnalisée ?

J'ai ajouté une colonne personnalisée dans ma page produit WooCommerce dans le tableau de bord d'administration, mais lorsque j'essaie de remplir la colonne en ajoutant 2 paramètres de champ ACF personnalisés pour le type de publication -> Produit, je reçois ce message d'erreur pour chacun d'eux. Erreur de débogage colonne personnalisée de notification répertoriée sur chaque produit.

Remarque : Variable non définie : produit situé à /./././wp-content/themes/bpa/functions.php ligne 923

Remarque : essayer d'obtenir "l'identifiant" du produit d'un non-objet /./././wp-content/themes/bpa/functions.php ligne 923

Quelqu'un peut-il m'aider à expliquer ce que je fais de mal pour obtenir une variable non définie ?

La ligne 923 est :

$product_id = method_exists( $product, 'get_id' ) ? $product->get_id() : $product->id;

Est-ce parce que j'ai utilisé l'ancienne méthode des toilettes ou quelque chose du genre ?

Fonctionnalités complètes :

// Populate column
function woo_product_rmreference_column_data( $column ) {
    global $post;

    if ( $column == 'rm_reference' ) {
            
        // 
            $product_id = method_exists( $product, 'get_id' ) ? $product->get_id() : $product->id;
        
            // Get ACF Fields
            $reference = get_field( 'property_reference', $product_id );
            $address = get_field( 'location', $product_id );

            // Output
            echo ($reference . $address) ? '<div>'.$reference.' - '.$address.'</div>' : '<div>Not found!</div>';
    }
}
add_action( 'manage_product_posts_custom_column' , 'woo_product_rmreference_column_data', 10, 2 );

P粉450744515P粉450744515264 Il y a quelques jours418

répondre à tous(1)je répondrai

  • P粉668113768

    P粉6681137682024-02-22 10:56:00

    Pour que tout le monde puisse le regarder. Si vous utilisez $product et $post, vous devez utiliser global $product et global $post pour y accéder.

    global $product;
    
    $product_id = $product->get_id();

    répondre
    0
  • Annulerrépondre