現在、WooCommerce機能を備えたWordPress Webサイトで作業しています。WooCommerceのカート項目のカスタムフィールド値を動的に取得
各製品ページには、サイト訪問者が製品に適用するテキストを入力するためのカスタムフィールドがあります。料金は、「1文字ごとに入力する」基準で適用されます。製品の全体的なコストを動作するように
(製品価格+カスタム文字が入力した)、私はfunctions.php
ファイルに、次のコードを挿入している:上記のコードは絶対にうまく動作します
<?php
function calculate_engrave_text_fee($cart_object) {
foreach ($cart_object->cart_contents as $key => $value) {
if(isset($value["engrave_text"])) {
// Quantity of characters entered into Custom Text Field:
$chars = strlen($value["engrave_text"]);
// Characters Entered Multiplied by Cost of Each Letter:
$engrave_text_fee = $chars * 3; //Need to dynamically call this.
$orgPrice = floatval($value['data']->price);
$value['data']->set_price($orgPrice + $engrave_text_fee);
}
}
}
add_action('woocommerce_before_calculate_totals', 'calculate_engrave_text_fee', 99);
?>
。 1つ例外があります。
各レターのコストは製品によって異なりますので、$engrave_text_fee = $chars * 3;
のような静的なエントリは理想的ではありません。また、WooCommerce製品ダッシュボードにカスタムフィールドを作成して、サイト管理者が各製品のカスタムレターの価格を入力できるようにしました。
問題
が動的にWooCommerce製品のダッシュボードから、カスタムフィールドのエントリを呼び出し、上記の数学にこれを配置するには、私が交換してみました:と$engrave_text_fee = $chars * 3;
:残念ながら
$engrave_text_fee = $chars * <?php global $post; echo get_post_meta($post->ID,'_pricing_engrave_text_option',true)?>;
、これをウェブサイトをオフラインにするだけです。私は、コーディングの構文に問題があると仮定することができます!私はここで間違っているかもしれないと指摘できる人は誰ですか?
コードを提供してくれてありがとう。私はなぜこのコードを試してみるのか分からないが、バスケットに製品を追加しようとするとすぐに空白になる。私はそれを理解できるかどうかを見極めるつもりです。 – Craig
@craig申し訳ありません$ cart_itemの$値の名前を変更するのを忘れてしまったので、今すぐ動作するはずです...再度試してみてください。 – LoicTheAztec