• Resolved paulfedorov

    (@paulfedorov)


    Fatal error: Uncaught Error: Call to a member function get_id() on array in /var/www/pandoraroot/data/www/alarmtrade.ru/wp-content/plugins/market-exporter/admin/class-market-exporter-wc.php:453

    Такая ошибка при генерации YML файла. WC 2.6.14 – пока его используем

    так и должно быть или я что-то не так делаю?

Viewing 4 replies - 1 through 4 (of 4 total)
  • Plugin Author Anton Vanyukov

    (@vanyukov)

    А если блок кода на этой строчке

    foreach ( $attributes as $param ) :
    	if ( true === $param['variation'] ) {
    		$param_value = $offer->get_attribute( wc_attribute_taxonomy_name_by_id( $param->get_id() ) );
    	} else {
    		$param_value = $product->get_attribute( wc_attribute_taxonomy_name_by_id( $param->get_id() ) );
    	}
    	/* @var WC_Product_Attribute $param */
    	$yml .= '        <param name="' . wc_attribute_label( wc_attribute_taxonomy_name_by_id( $param->get_id() ) ) . '">' . $param_value . '</param>' . PHP_EOL;
    endforeach;

    заменить на:

    foreach ( $attributes as $param ) :
    	if ( self::woo_latest_versions() ) {
    		$taxonomy = wc_attribute_taxonomy_name_by_id( $param->get_id() );
    	} else {
    		$taxonomy = wc_attribute_taxonomy_name_by_id( $param['id'] );
    	}
    
    	if ( true === $param['variation'] ) {
    		$param_value = $offer->get_attribute( $taxonomy );
    	} else {
    		$param_value = $product->get_attribute( $taxonomy );
    	}
    
    	/* @var WC_Product_Attribute $param */
    	$yml .= '        <param name="' . wc_attribute_label( $taxonomy ) . '">' . $param_value . '</param>' . PHP_EOL;
    endforeach;
    Thread Starter paulfedorov

    (@paulfedorov)

    А вот так работает, спасибо!

    только аттрибуты все пустые https://take.ms/17HH0

    Plugin Author Anton Vanyukov

    (@vanyukov)

    Виноват. Вот верный кусок кода:

    foreach ( $attributes as $param ) :
    	if ( self::woo_latest_versions() ) {
    		$taxonomy = wc_attribute_taxonomy_name_by_id( $param->get_id() );
    	} else {
    		$taxonomy = $param['name'];
    	}
    
    	if ( true === $param['variation'] ) {
    		$param_value = $offer->get_attribute( $taxonomy );
    	} else {
    		$param_value = $product->get_attribute( $taxonomy );
    	}
    
    	/* @var WC_Product_Attribute $param */
    	$yml .= '        <param name="' . wc_attribute_label( $taxonomy ) . '">' . $param_value . '</param>' . PHP_EOL;
    endforeach;
    Thread Starter paulfedorov

    (@paulfedorov)

    А вот теперь все отлично работает, спасибо!

Viewing 4 replies - 1 through 4 (of 4 total)
  • The topic ‘Fatal error: Uncaught Error: Call to a member function get_id()’ is closed to new replies.